Machine Learning第七讲[支持向量机] --(二)核函数
来源:互联网 发布:java高并发项目源码 编辑:程序博客网 时间:2024/05/19 00:14
内容来自Andrew老师课程Machine Learning的第七章内容的Kernels部分。
一、Kernels I(核函数I)
在非线性函数中,假设函数为:
现在我们将表达式改变一下,将其写为:
即
联想到上次讲到的计算机视觉的例子,因为需要很多像素点,因此若f用这些高阶函数表示,则计算量将会很大,那么对于我们有没有更好的选择呢?
由此引入核函数的概念。
对于给定的x,
其中,similarity( )函数叫做核函数(kernel function),又叫高斯核函数,其实就是相似度函数,但我们平时写成。
这里将,则f1表达式为:
若,则
若x is far from,则
下面的图形会给出比较直观的感受:
delta^2比较小,则图形比较陡峭;随着delta^2越来愈大,图形渐趋平稳。
在此基础上,看下面的例子:
对于紫色的点x,因为其距离比较近,距离比较远,因此,theta值是已知的,将theta和f的值代入即可得到这个点的预测值。
对于蓝色的点,因为其距离都比较远,因此,代入即可得到预测值。
通过选取很多这样的x值,得到他们的预测值,得到边界,如图红色不规则封闭图形所示,在图形内部预测值为y=1,在图形外部的预测值y=0。
二、Kernels II(核函数II)
上面Kernels I内容中讲到了,那我们应该怎么样选出呢?
我们采取的方法是将每一个样本都作为一个标记点。
SVM with Kernels
给出,我们选择。
对于x,则有
有向量
其中。
对于训练样本,有
(公式来自:http://blog.csdn.net/u012328159/article/details/51339801)
其中,(公式中),且
于是,假设函数变成
其中,m为训练集的大小
带核函数的代价函数为:
注意:这里我们仍然不把θ0计算在内。
最小化这个函数,即可得到支持向量机的参数。
若涉及到一些优化问题,可以选择n=m。
另外,说明:
,其中,
另外,在实际应用中有人将其实现为下述公式,这是另一种略有区别的距离度量方法,这种方法可以适应超大的训练集:
因为若使用第一种方法,当m非常大时,求解很多参数将会成本非常高。
SVM参数以及方差、偏差的关系
,若参数C很大,即λ较小,则过拟合,低偏差,高方差
若参数C很小,即λ较大,则前拟合,高偏差,低方差
,若参数很大,则欠拟合,高偏差,低方差,图形比较平稳
若参数很小,则过拟合,低偏差,高方差,图形比较陡峭
附上一题关于参数的题目:
0 0
- Machine Learning第七讲[支持向量机] --(二)核函数
- Andrew Ng《Machine Learning》第七讲——支持向量机SVM(Support Vector Machine)
- Machine Learning第七讲[支持向量机] --(一)最大间隔分类
- Machine Learning第七讲[支持向量机] --(三)SVM在实践中的应用
- 《Machine Learning》第八讲 支持向量机(SVM)
- Machine Learning第七周笔记:支持向量机
- Machine Learning(七)支持向量机
- 周志华《Machine Learning》学习笔记(7)--支持向量机
- 周志华《Machine Learning》学习笔记(7)--支持向量机
- 机器学习---第七讲支持向量机
- OpenCV Machine Learning 之 支持向量机 (Support Vector Machine)
- 《Machine Learning》第七讲 Precision and Recall
- Machine Learning:支持向量机通俗导论(理解SVM的三层境界)
- 理解支持向量机(二)核函数
- 机器学习之支持向量机SVM Support Vector Machine (二) 非线性SVM模型与核函数
- Andrew Ng -machine learning 课堂笔记(二)第七周
- 支持向量机(Support Vector Machine)
- 支持向量机(Support Vector Machine)
- Codeforces Round #411 C.Find Amir (思维题)
- matlab旋转图像任意角度
- HDU 2609 How many(字符串同构,最小表示法)
- spring进阶(四)-- mybatis驼峰命名功能
- 详解Java8特性之Stream API补充
- Machine Learning第七讲[支持向量机] --(二)核函数
- Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":root:supergroup:drwx------
- 从零开始学Scala系列(三)之初识循环分支结构
- jupyter notebook python2 python3 kernel共存
- Tomcat嵌入式启动
- MySQL——C语言遇上SQL语句
- 串的模式匹配
- C语言总结
- 5月6日,CountObject,每日20行。