机器学习 -支持向量机手写字体分类

本博客内容来自《PYTHON机器学习及实践-从零开始通往KAGGLE竞赛之路》一书

from sklearn.datasets import load_digits #导入手写字数据集
from sklearn.model_selection import train_test_split #训练/测试数据切分模块
from sklearn.preprocessing import StandardScaler #数据归一化模块
from sklearn.svm import LinearSVC #导入基于线性假设的支持向量机分类器LinearSVC
from sklearn.metrics import classification_report 
#加载手写字数据
digits = load_digits() #1797张8*8灰度图

#将数据集分为3:1的训练:测试集
X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

lsvc = LinearSVC()
lsvc.fit(X_train,y_train)
y_predict = lsvc.predict(X_test)
print('The Accuracy of Linear SVCC is ',lsvc.score(X_test,y_test))
print(classification_report(y_test,y_predict,target_names=digits.target_names.astype(str)))
The Accuracy of Linear SVCC is  0.9533333333333334
              precision    recall  f1-score   support

           0       0.92      1.00      0.96        35
           1       0.96      0.98      0.97        54
           2       0.98      1.00      0.99        44
           3       0.93      0.93      0.93        46
           4       0.97      1.00      0.99        35
           5       0.94      0.94      0.94        48
           6       0.96      0.98      0.97        51
           7       0.92      1.00      0.96        35
           8       0.98      0.84      0.91        58
           9       0.95      0.91      0.93        44

   micro avg       0.95      0.95      0.95       450
   macro avg       0.95      0.96      0.95       450
weighted avg       0.95      0.95      0.95       450
这里需要指出:召回率,准确率和F1指标最先适合用于二分类任务,但是在本例中,我们分类目标有10个类别,
即0~9的10个数组,因此无法直接计算上述三个指标,通常做法是逐一评估某个类别的这三个性能指标,
事实上不仅学习模型在对待多类分类任务是是这样做的,最终输出也证明了如此
特点分析:
支持向量机模型曾经在机器学习研究领域繁荣发展了很长一段时间,主要原因在于其精妙的模型假设,
可以帮助我们在海量甚至高纬度的数据中筛选对预测任务最为有效的少数训练样本,这样做不仅节省了模型学习所需要的数据内存
同时也提高了模型的预测性能,然而,要获得如此的优势就比然要付出更多的计算代价,因此,
请在世纪使用该模型的时候权衡其中的利弊,进而达成各自的任务目标
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值