机器学习——支持向量机
程序员文章站
2022-06-26 20:00:49
SVM就是试图把棍放在一堆球中的最佳位置,好让在棍的两边有尽可能大的间隙。这个间隙就是球到棍的距离。 支持向量机:找到分类界面,使支持向量间的间隔最大,支持向量到分割界面的距离最小 支持向量是通过到分割界面距离最小的点的向量,且两向量间的距离最大,在二维中其实就是点 取支持向量间的最大间隔是为了若当 ......
svm就是试图把棍放在一堆球中的最佳位置,好让在棍的两边有尽可能大的间隙。这个间隙就是球到棍的距离。
- 支持向量机:找到分类界面,使支持向量间的间隔最大,支持向量到分割界面的距离最小
- 支持向量是通过到分割界面距离最小的点的向量,且两向量间的距离最大,在二维中其实就是点
- 取支持向量间的最大间隔是为了若当再添加一个点到一类中,最大间隔可以容许,仍然可以进行有效分割
- 支持向量到分割界面(决策面)距离最小意思是这些点最为接近
导入类库
1 from sklearn.datasets import load_digits 2 from sklearn.metrics import classification_report 3 from sklearn.model_selection import train_test_split 4 from sklearn.preprocessing import standardscaler 5 from sklearn.svm import linearsvc 6 import numpy as np 7 import matplotlib.pyplot as plt
代码
1 def hw_recognition(): 2 digits = load_digits() 3 4 x_train, x_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.25, random_state=23) 5 6 ss = standardscaler() 7 # fit 是实例方法,必须由实例调用 8 x_train = ss.fit_transform(x_train) 9 x_test = ss.transform(x_test) 10 11 lsvc = linearsvc() 12 lsvc.fit(x_train, y_train) 13 14 # 预测测试集数据 15 # y_predict = lsvc.predict(np.array([x_test[90]])) 16 # print(y_predict) 17 18 # 生成评估报告 19 # 精确率precision = 正正 / (正正 + 反正) 20 # 按列计算 21 # 22 # 召回率recall = 正正 / (正正 + 正反) 23 # 按行计算 24 # 按行解释正反:正正-真正的正例预测为正例;正反-真正的正例预测为反例 25 # 反正-真正的反例预测为正例;反正-真正的反例预测为正例 26 y_predict = lsvc.predict(x_test) 27 print(classification_report(y_test, y_predict, target_names=digits.target_names.astype(str))) 28 29 # 对比预测的数字与原图像中的数字 30 # y_predict = lsvc.predict(np.array([digits.data[307]])) 31 # plt.imshow(digits.images[307]) 32 # print(y_predict) 33 # plt.show()
解析
1 真实数据 预测数据 2 --------------------------- 3 18正 12反 4 20正 12正正 8正反 5 10反 6反正 4反反 6 --------------------------- 7 8 精确率precision = 正正/(正正+反正) 按列计算 9 10 召回率recall = 正正/(正正+正反) 按行计算
运行结果
精确率 召回率
precision recall f1-score support
0 1.00 1.00 1.00 37
1 0.86 0.90 0.88 48
2 1.00 0.98 0.99 46
3 0.91 0.98 0.94 41
4 1.00 0.96 0.98 49
5 0.91 0.98 0.94 50
6 0.98 0.98 0.98 41
7 0.92 0.95 0.93 37
8 0.93 0.89 0.91 46
9 1.00 0.91 0.95 55
avg / total 0.95 0.95 0.95 450
上一篇: 年青人聪明难忽悠
下一篇: 507房间有口说不清