手写数字识别-SVM方法

本文通过SVM对手写数字进行识别,详细介绍了从数据导入到模型训练的过程。首先,通过查看特征发现其为灰度表示,范围0-255。接着,划分特征和标签进行初步训练,发现默认参数下准确率较低。然后,通过调参找到最佳参数,虽然过程较慢,但在测试集上性能显著提升。进一步,增加训练样本数量和进行特征缩放,其中特征缩放对于SVM的性能至关重要,它使得模型的准确率有显著提高。总结,SVM适合数字识别任务,但大量特征导致训练慢,而增加样本和特征缩放能有效优化模型。
摘要由CSDN通过智能技术生成

1 导入数据,查看特征

from sklearn import svm
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
import pandas as pd
train=pd.read_csv('Digit/train.csv')
test=pd.read_csv('Digit/test.csv')
i=2
img=train.iloc[i,1:].as_matrix()
img=img.reshape(28,28)
plt.imshow(img,cmap='gray')
plt.title('digit is :'+str(train.iloc[i,0]))

在这里插入图片描述

plt.hist(train.iloc[i,1:])

在这里插入图片描述
特征按灰度表示,范围在0-255之间

2 划分特征和标签,初步训练

img=train.iloc[:5000,1:]
label=train.iloc[:5000,0]
train_data,test_data,train_label,test_label=train_test_split(
                            img,label,test_size=0.2,random_state=0)
# 训练
svc=svm.SVC(C=3)
svc.fit(train_data,train_label)
print svc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值