机器学习——支持向量机
2018-10-11 09:59:08来源:博客园 阅读 ()
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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:python之路 第一篇
- Python学习日记(十) 生成器和迭代器 2019-08-13
- python学习-53 正则表达式 2019-08-13
- python爬虫学习之爬取超清唯美壁纸 2019-08-13
- python爬虫学习之用Python抢火车票的简单小程序 2019-08-13
- Python学习日记(九) 装饰器函数 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash