5、支持向量机

【参考资料】
coursera机器学习课程第六周——课程笔记
https://blog.csdn.net/u012052268/article/details/78816779#3实践svm
http://www.ai-start.com/ml2014/html/week7.html

【逻辑回归简化】
1、预测函数:
g(x) = 1/(1+e**-h(x)),其中z为h(x)=θ(0)+θ(1)*x
2、损失函数: 
J(θ) = (1/m)*∑(−y * ln(g(x)) − (1 − y) * ln(1 − g(x))
3、J(θ)函数简化
% 3-1、y = 1 | g(x) = 1 => 0; g(x) = 0 => +∞; - ln(1/(1 + exp(-x)))
x = [-3: 0.01: 3];
y = -log(1./(1 + exp(-x)));
% 3-2、y = 0 | g(x) = 0 => 0; g(x) = 1 => +∞; - ln(1 - 1/(1 + exp(-x)))
z = -log(1- 1./(1 + exp(-x)));
plot(x, y, x, z ,'rx', 'MarkerSize', 1);
% cos[1](z)、cos[0](z)分别为在 x = 1 和 x = -1时做渐进折线,近似表达
4、J(θ)函数简化
4-1、y = 1 | z >= 1  => cos[1](z) 为0(0.3133)即 z>  1为1
4-2、y = 0 | z <= -1 => cos[0](z) 为0(0.3133)即 z< -1为0
4-3、故z = 0 为具有最大安全距离的决策边界即svm

【数学原理】
1、向量内积u .* v = |u| * |v| * cosθ
1-1、向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算
1-2、几何意义是可以用来表征或计算两个向量之间的夹角,以及在b向量在a向量方向上的投影
1-3、公式推导
三角函数:cos(α - β) = cosα*cosβ + sinα*sinβ
          θ = α - β
= > cosθ = cosα*cosβ + sinα*sinβ
         = (u1/|u|)*(v1/|v|) + (u2/|u|)*(v2/|v|)
         = (u1 * v1 +  u2 * v2)/(|u| * |v|)
= > u.*v = u1 * v1 +  u2 * v2 = |u|*|v| * cosθ
(也可以使用余弦定理证明 c²=a²+b²-ab·cosC)

2、损失函数
   J(θ) = C * ∑[−y * cos1(θ'x) − (1 − y)* cos0(θ'x)] + (∑θ**2)/2
   有 minJ(θ) = min(∑θ**2)/2 在 y = 1 | θ'x >= 1 或 y = 0 | θ'x <= -1 条件下
3、目标函数
   θ'x >= 1  即p*|θ| >= 1  | h(x) = 1 
   θ'x <= -1 即p*|θ| <= -1 | h(x) = 0
4、决策边界
   θ'x = 0 
   θ'x <=> p*|θ| = 0 => 决策边界垂直θ'
5、最小化目标函数的目的
  通过p(x在θ的投影)变大,支持向量机最终可以找到一个较小的范数。

【本质】 
1、|p|*|θ| >= 1 且min|θ|  => p最大,因此为大间距分类器
   (样本在与决策边界垂直的θ上的投影|p|越大,样本到决策边界的距离越大)
2、损失函数简化掉对数和指数运算
   (-log(1./(1 + exp(-θ'x)))和 -log(1- 1./(1 + exp(-θ'x))) => |p|*|θ| >= 1)

【模型选择】
1、逻辑回归和SVM选择
 n为特征数,m为训练样本数。
 (1)相较于m而言n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,
    我们选用逻辑回归模型或者不带核函数的支持向量机。
 (2)n较小m大小中等,如n在 1-1000之间而m在10-10000之间,使用高斯核函数的支持向量机。
 (3)n较小m较大,如n在1-1000之间而m大于50000,则使用支持向量机会非常慢,
    解决方案是创造、增加更多的特征,使用逻辑回归或不带核函数的支持向量机。
 (4)值得一提的是神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能非常慢,
    选择支持向量机的原因主要在于它的代价函数是凸函数不存在局部最小值
2、参数选择C、σ  
 (1)C较大时,可能会导致过拟合,高方差;
 (2)C较小时,可能会导致欠拟合,高偏差;
 (3)σ较大时,可能会导致低方差,高偏差;
 (4)σ较小时,可能会导致低偏差,高方差;
3、选择核函数
   线性核函数即不带核函数,在高斯核函数之外还有其他一些选择:
   多项式核函数(Polynomial Kernel)
   字符串核函数(String kernel)
   卡方核函数(chi-square kernel)
   直方图交集核函数(histogram intersection kernel)

【模型训练】
1、svm实现过于复杂直接使用优秀工具
2、通过线性核函数不同C所得决策边界效果图理解C的选择
3、通过高斯核函数交叉验证寻求预测最准确的C、σ

【概念】
支持向量机(SVM),为学习复杂的非线性方程提供一种更为清晰,更加强大的方式。
使用一种非线性映射(数据非线性可分时),将原始训练数据映射到较高的维度上,
在新的维度上,搜索最佳分离超平面(最大边缘超平面:MMH),将两个类分开。
SVM使用支持向量和边缘发现该超平面。
可以对线性和非线性数据进行分类。
支持向量机也称为大间距分类算法。

1、数据线性可分时
搜索距离两个类的距离最远的平面,即最大边缘超平面,将两个类进行划分,得到一个训练好的分类器,
当有一个新的样本时,通过计算其在MMH上方还是下方,对其进行分类。
2、当数据非线性可分时(找不到一条直线或平面将数据分开):
将原始数据使用一种非线性映射(核函数)变换到高维空间,在高维空间搜索最佳分离超平面,
这个在新空间中的MMH对应原空间中的非线性分离超曲面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值