支持向量回归预测怎么做_支持向量机分类模型预测手写数字

快递公司每天都会接收处理大量的快递,多数的地址邮编都是通过手写,并且每个人写的数字都样式各异,原本这项任务是通过人工来进行,后来人们尝试用机器代替人工,但是由于没有统一的形状规则来进行识别分类,机器也没有取得很好的效果。随着机器学习技术的兴起,研究人员开始重新考虑这个任务,并且通过大量的研究证明:支持向量机(SVM)对手写数字有很好的预测效果。

ce16a1b2c523b28bf603e0a40509db49.png

什么是支持向量机

支持向量机(Support Vector Machine),简而言之,就是通过对向量的进行运算的一种二分类器。百科的含义:是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面。具体原理后续抽时间再细说。

5e08d1407f062788f050aa4f859e39f8.png

本文通过sklearn内部集成的数据中获取手写数字图片数据集,并对数据进行建模预测,最后进行性能评估。由于数字从0-9共有10个类别,而召回率、准确率、F1指标只适用于二分类任务,因此本次性能评估需要创造10个二分类。

数据获取

从sklearn.datasets里导入手写数字图片数据加载器,并将加载器的数据存储在digits中,获取数据特征和数据标签。


from sklearn.datasets import load_digits

digits = load_digits()

data_x = digits.data

data_y = digits.target

#检查手写数据的记录和维度

data_x.shape (1797, 64)

data_y.shape (1797,)

数据分割并标准化

使用train_test_split模型 将数据 按1:3 的比例进行分割,测试数据占比25% ,训练数据 占比75%。并使用StandardScaler函数进行标准化。


from sklearn.cross_validation import train_test_split

x_train,x_test,y_train,y_test = train_test_split(data_x,data_y,test_size=0.25,random_state=33)

#数据标准化

from sklearn.preprocessing import StandardScaler

#标准化数据

SS= StandardScaler()

x_train=SS.fit_transform(x_train)

x_test=SS.transform(x_test)

支持向量机分类模型建模

使用支持向量机分类算法对上述的训练数据进行学习,并对测试数据进行预测。


from sklearn.svm import LinearSVC

lsvc = LinearSVC() #初始化模型

lsvc.fit(x_train,y_train) #调用fit函数进行模型训练

y_predict = lsvc.predict(x_test) #使用predict 函数进行预测

模型性能评估

通过自带的评估函数对模型结果进行准确性测评,并使用classification_report模块对预测结果进行详细的分析。


from sklearn.metrics import classification_report

print("模型得分:%.2f" % (float(lsvc.score(x_test,y_test))*100))

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

预测结果如下:


043453736bd61be9327d6429d75c8657.png

针对450个预测进行对比,模型整体平均得分在95分左右,支持向量机对手写数据的识别效果确实不错。

支持向量机特点分析

支持向量机精妙的模型假设,适用于数据量建模,但是数据量一大,这些优势需要付出很大的计算待机(计算时间和CPU的资源)。所以针对大数据,还是要结合实际情况,权衡利弊选择支持向量机模型。

今天就到这,如有疑惑,欢迎大家关注留言,共同学习,共同进步!

96af128b34da86bdfbd47b2841fa7604.png 413298950beefafb49deb886db0b71b4.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值