Support Vector Machines(监督学习方法)

Logistic regression vs. SVM

1. 适应场景

  • n = 特征数量         m = 训练集的数量
  • if n > m        使用逻辑回归或线性核函数
  • if n 小,同时 m 适中       使用高斯核函数
  • if n 小,但 m 非常大       使用逻辑回归或线性核函数
  • 神经网络算法可以很好的适应上述所有情况,但训练速度很慢。

原因:如果 n 过大,使用高斯核函数,运算量会很大,运行速度会很慢。
           如果 n > m ,没有足够的数据来拟合复杂的非线性函数。

2. 代价函数对比

在SVM中,if y =1,θ^T*x 不仅仅大于等于 0(上述图片取 1 ) ,相当于构建一个安全距离

  1. 在SVM中,代价函数去掉了(1/m)
  2. 在SVM中,用参数 C 替换了参数 λ(形式相当于 1/λ),参数的作用主要是控制我们更关心针对哪一项的优化。
           Large C:低偏差,高方差
           Small C:高偏差,低方差

3. 假设函数对比

if θ^T*x >= 0 ,h(x) = 1
oherwise,h(x) = 0
与逻辑回归相比,不会输出概率

Large Margin(大间距)

1. 直观认识

在分离数据时,尽量用大的间距去分离
如果参数C非常大,会使得训练模型对异常点特别敏感,如上图,会因为左下角一个异样点导致分割线大不相同。

2. 数学解释

u^T * v = p * ||u|| (p为向量v在向量u上的投影)
即 θ^T * x = p * ||θ||
当间距很小时,x在θ上的投影 p 会相对较小,要是 p * ||θ|| >=1,此时θ就会变大,最终导致代价函数的第二项变大。

Kernels(核函数)

1. 选区标记点(landmarks)

在实际的模型训练中,将样本点当作标记点

2. 新的特征f(高斯核函数)

参数 δ^2 :控制 f 下降到0的速度;越大下降速度越慢
       Large δ^2:高偏差,低方差
       Small δ^2:低偏差,高方差

3. 代价函数

Σ(1,m):特征 f 是 m + 1 维向量(其中f(0)=1,m是训练集数量)

4. SVM

  • 选择参数C
  • 选择核函数(常用:线性核函数 / 高斯核函数)

如有有大小不一样的特征变量,在使用高斯函数之前,需将这些特征标量的大小按比例归一化(如:房子大小(1000);卧室数量(5))

5. Multi-class classification

  • 已有许多SVM包建立了多元分类函数
  • 使用 one-vs.-all方法,为每一类分别训练一个模型函数,最后选择最大的 θ^T*x作为最终分类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值