mnist数据集svmpython_应用SVM对MNIST数据集进行分类

更新时间:2023-07-19 05:23:46 阅读: 评论:0

mnist数据集svmpython_应⽤SVM对MNIST数据集进⾏分类MNIST是机器学习领域⼗分经典的⼀个⼿写数字数据集,共60000张训练图像,10000张测试图像,图像⼤⼩为28*28.
请教的近义词
将下载下来的压缩包解压后放到源代码所在的⽂件夹下即可。
SVM分类MNIST的源代码如下:
from sklearn import svm
import numpy as np
from time import time
ics import accuracy_score
from struct import unpack
del_lection import GridSearchCV
def readimage(path):
with open(path, 'rb') as f:
magic, num, rows, cols = unpack('>4I', f.read(16))
img = np.fromfile(f, dtype=np.uint8).reshape(num, 784)
return img
def readlabel(path):
with open(path, 'rb') as f:
magic, num = unpack('>2I', f.read(8))
lab = np.fromfile(f, dtype=np.uint8)
return lab
def main():
train_data = readimage("train-images.idx3-ubyte")
train_label = readlabel("train-labels.idx1-ubyte")
test_data = readimage("t10k-images.idx3-ubyte")
test_label = readlabel("t10k-labels.idx1-ubyte")
svc=svm.SVC()
wifi很慢变形金刚玩具吧parameters = {'kernel':['rbf'], 'C':[1]}
print("")
clf=GridSearchCV(svc,parameters,n_jobs=-1)
start = time()
光彩夺目是什么意思蚂蚁和蝈蝈clf.fit(train_data, train_label)
end = time()
t = end - start
震惊的成语print('Train:%dmin%.3fc' % (t//60, t - 60 * (t//60)))
prediction = clf.predict(test_data)
print("accuracy: ", accuracy_score(prediction, test_label))
accurate=[0]*10
sumall=[0]*10
i=0
while i
sumall[test_label[i]]+=1
商铺转租合同if prediction[i]==test_label[i]:
accurate[test_label[i]]+=1
i+=1
刺激真心话
print("分类正确的:",accurate)
print("总的测试标签:",sumall)
if __name__ == '__main__':
main()
程序通过readimage和readlabel函数读⼊数据后创建svm分类器,并⽤parameter添加相应的参数,这⾥使⽤GridSearchCV将参数作为输⼊优化⽹络,这⾥输⼊的parameter对应分类器唯⼀,可进⾏添加以达到优化参数的⽬的,代码中使⽤GridSearchCV的主要⽬的是引⼊n_jobs让cpu进⾏多线程处理,n_jobs=-1时程序的并⾏数将和cpu的核数⼀致,从⽽极⼤的加速程序的运⾏。在i5-8300H的四核CPU中训练时间为26min。
源代码训练时的正确率如下:
欢迎评论区交流。
希望与⼴⼤⽹友互动??
点此进⾏留⾔吧!

本文发布于:2023-07-19 05:23:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1104456.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   源代码   参数   图像
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图