SVM算法识别手写体数字

2017-05-25  本文已影响0人  lzp12138

        sklearn内部集成了一些手写体数字图片数据集,现在我们使用这些数据,用SVM支持向量机算法进行训练识别的练习。笔者习惯用pycharm,今天手痒,用一下Spyder编辑,顺便对比一下哪一个好用。废话不多说,上码:

#-*- coding:utf-8 -*-

#------导入sklearn里的数据集

from sklearn.datasets import load_digits

digits=load_digits()

print('数据集的数据量及单个数据的大小:',digits.data.shape)

#------训练集和测试集随机分割,25%作为测试集

from sklearn.cross_validation import train_test_split

X_train,X_test,y_train,y_test=train_test_split(digits.data,digits.target,

test_size=0.25,random_state=33)

print('训练集数量:',y_train.shape)

print('测试集数量:',y_test.shape)

#------调用SVM算法训练模型

from sklearn.preprocessing import StandardScaler

from sklearn.svm import LinearSVC

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 SVCis:',lsvc.score(X_test,y_test))

from sklearn.metrics import classification_report

print(classification_report(y_test,y_predict,target_names=digits.target_names.astype(str)))

     结果如下:


准确率不错的,识别手写体数字准确在95%以上。

上一篇下一篇

猜你喜欢

热点阅读