1.支持向量机优化目标
SVM (Support Vector Machine)
由逻辑回归修改至支持向量机:假设函数:hθ(x)=1+e−θTx1
可知: 逻辑回归为分类函数,如果y=1则希望hθ能够接近1,因此θTx要远远大于0,否则则相反。
观察: 损失函数:
Cost(hθ(x(i)),y(i))=−y×log(hθ(x))−(1−y)×log(1−hθ(x))
y = 1时候:Cost=−log1+e−θTx1,利用粉色线模拟原图像,称之cost1(z),z>1损失最小
y = 0时候:Cost=log(1−1+e−θTx1),利用粉色线模拟原图像,称之cost0(z),z<−1损失最小
构建支持向量机 :
- 逻辑回归损失函数中,去掉m1,加入参数C,去掉λ,C=λ1得到支持向量机优化的目标函数,最小化目标函数,学习到C
2.支持向量机大边界
可见三条线均可以分类但是黑色线更佳
其中C的作用:
C相当于λ的倒数因此与λ影响正相反
C较大时,λ较小,容易过拟合,导致高方差
C较小时,λ较大,容易欠拟合,导致高偏差
向量内积知识补充:uTv=p⋅∣∣v∣∣,p为u投影在v上的向量,
简化损失函数前项为0,则结果为21∣∣θ∣∣,即为损失成本函数,找到θ使21∣∣θ∣∣最小,由补充的知识可知θTx=p⋅∣∣θ∣∣,p⋅∣∣θ∣∣>0,p大了,就可以让变小一些,即损失最小化,实现了大边界
3.核函数
高斯核函数
如何选取地标呢,就是从训练集m选m个地标,每个都进行运算得到对应的f(i)
选择不带任何内核参数的为线性核函数
选用逻辑回归和向量机的普遍使用准则:
- 如果n比m大很多,即训练集数据量不够支持我们训练一个复杂非线性模型,选用逻辑回归或是不带核函数的支持向量机
- 如果n较小,m中等大小,比如n为1-1000,m为10-10000之间,则使用高斯核函数的SVM
- 如果n较小,m较大,比如n为1-1000,m大于50000,则SVM非常慢