第十一章.支持向量机(SVM)

SVM一般用于比较复杂的分类情况,例如:图像识别,人脸识别

11.1 支持向量机—凸优化问题的三种情况

SVM

1).SVM寻找区分两类的超平面(hyper plane), 使边际(margin)最大

支持向量机python求的最优参数和表达式关系_代价函数

向量内积

1).公式

支持向量机python求的最优参数和表达式关系_凸优化问题的三种情况_02

2).图像

支持向量机python求的最优参数和表达式关系_代价函数_03

SVM分类

  • 支持向量就是与wx+b=1或wx+b=-1两条线相切的点(一个或多个)

1).wx+b=1和wx+b=-1的推导与边际(margin)最大的推导

支持向量机python求的最优参数和表达式关系_人工智能_04

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_)

·结果展示

支持向量机python求的最优参数和表达式关系_凸优化问题的三种情况_05

凸优化问题

1).公式

支持向量机python求的最优参数和表达式关系_支持向量机_06


||w||2是||w||的变形,主要是为了最后开平方准备的,便于计算

2).凸优化问题一般可以分为三种情况

  • 无约束优化问题—费马定理:
  • 带等式约束的优化问题—拉格朗日乘子法
  • 带不等式约束的优化问题—KKT条件

广义拉格朗日乘子法

1).公式

支持向量机python求的最优参数和表达式关系_支持向量机_07

跟岭回归和LASSO类似

1).代价函数

①.岭回归代价函数

支持向量机python求的最优参数和表达式关系_人工智能_08


②.LASSO代价函数

支持向量机python求的最优参数和表达式关系_凸优化问题的三种情况_09

2).图像

支持向量机python求的最优参数和表达式关系_机器学习_10

Karush-Kuhn-Tucker最优化条件(KKT条件)

拉格朗日乘子法的一种推广,可以处理有不等号的约束条件。

1).公式

支持向量机python求的最优参数和表达式关系_凸优化问题的三种情况_11

对偶问题

1).公式

  • ④.由此可以求出最优解𝛼∗,求出该值后将其带入可以得到