机器学习——VSM(覃秉丰)

SVM基础知识:

1、发展历史:

机器学习——VSM(覃秉丰)_第1张图片

总结:SVM使用不是很多了,但也不是完全被淘汰了,不是特别感兴趣不用太过深入地研究

2、原理:

使得分界超平面距离两个类别之间的距离最大化
机器学习——VSM(覃秉丰)_第2张图片

基础知识——向量内积:
机器学习——VSM(覃秉丰)_第3张图片
机器学习——VSM(覃秉丰)_第4张图片

支持向量(SVM)
机器学习——VSM(覃秉丰)_第5张图片

相关推导:
机器学习——VSM(覃秉丰)_第6张图片
d越大越好,就是指||W||越小越好
机器学习——VSM(覃秉丰)_第7张图片
凸优化问题
机器学习——VSM(覃秉丰)_第8张图片
广义拉格朗日乘子法
机器学习——VSM(覃秉丰)_第9张图片
进一步转换为对偶问题
机器学习——VSM(覃秉丰)_第10张图片


3. SVM简单程序(使用sklearn)

SVM算法比较麻烦,一般不会去复写源代码,调用封装好的库就行了

from sklearn import svm
import matplotlib.pyplot as plt
import numpy as np

# 训练数据与标签
x_data = [[3,3],[4,3],[1,1]]
y_data = [1,1,-1]

# 建立模型与训练
model  = svm.SVC(kernel='linear')
model.fit(x_data,y_data)

#打印支持向量机
print(model.support_vectors_)
# 第二个和第0个样本是支持向量
print(model.support_)
# 线上和线下分别有几个支持向量 
print(model.n_support_)
# 模型预测值
model.predict([[5,5]])
# 模型系数(有两个,一个x1一个x2,)
model.coef_
# 模型截距
model.intercept_

# 绘制一下可视化的图像
plt.scatter([3,4,1],[3,3,1])
x1 = np.linspace(1,4,100)
plt.plot(x1,-model.intercept_[0]/model.coef_[0][1]-model.coef_[0][0]/model.coef_[0][1]*x1,color='red')
plt.title('SVM')
plt.xlabel("X1")
plt.ylabel("X2")

结果
机器学习——VSM(覃秉丰)_第11张图片

你可能感兴趣的:(机器学习,机器学习,svm,算法,python,人工智能)