第十一章.支持向量机(SVM)
SVM一般用于比较复杂的分类情况,例如:图像识别,人脸识别
11.1 支持向量机—凸优化问题的三种情况
SVM
1).SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大
向量内积
1).公式
2).图像
SVM分类
- 支持向量就是与wx+b=1或wx+b=-1两条线相切的点(一个或多个)
1).wx+b=1和wx+b=-1的推导与边际(margin)最大的推导
2).示例
·代码实现
from sklearn import svm
x = [[3, 3], [4, 3], [1, 1]]
y = [1, 1, -1]
model = svm.SVC(kernel='linear')
model.fit(x, y)
# 与wx+b=1或wx+b=-1相切的数据点坐标,也称为支持向量
print(model.support_vectors_)
# 第2和第0个点是支持向量:支持向量所对应的索引
print(model.support_)
# 有几个支持向量:wx+b=1和wx+b=-1相切的支持向量数量
print(model.n_support_)
# 对数据点进行预测,所属类别
print(model.predict([[4, 3]]))
# 系数
print(model.coef_)
# 截距
print(model.intercept_)
·结果展示
凸优化问题
1).公式
||w||2是||w||的变形,主要是为了最后开平方准备的,便于计算
2).凸优化问题一般可以分为三种情况
- 无约束优化问题—费马定理:
- 带等式约束的优化问题—拉格朗日乘子法
- 带不等式约束的优化问题—KKT条件
广义拉格朗日乘子法
1).公式
跟岭回归和LASSO类似
1).代价函数
①.岭回归代价函数
②.LASSO代价函数
2).图像
Karush-Kuhn-Tucker最优化条件(KKT条件)
拉格朗日乘子法的一种推广,可以处理有不等号的约束条件。
1).公式
对偶问题
1).公式
- ①
- ②
- ③
- ④.由此可以求出最优解𝛼∗,求出该值后将其带入可以得到