python机器学习sklearn怎么实现识别数字
python机器学习sklearn怎么实现识别数字
这篇文章主要介绍了python机器学习sklearn怎么实现识别数字的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python机器学习sklearn怎么实现识别数字文章都会有所收获,下面我们一起来看看吧。
数据处理
数据分离
因为我们打开我们的的学习数据集,最后一项是我们的真实数值,看过小唐上一篇的人都知道,老规矩先进行拆分,前面的特征放一块,后面的真实值放一块,同时由于数据没有列名,我们选择使用iloc[]来实现分离
defshuju(tr_path,ts_path,sep='\t'):train=pd.read_csv(tr_path,sep=sep)test=pd.read_csv(ts_path,sep=sep)#特征和结果分离train_features=train.iloc[:,:-1].valuestrain_labels=train.iloc[:,-1].valuestest_features=test.iloc[:,:-1].valuestest_labels=test.iloc[:,-1].valuesreturntrain_features,test_features,train_labels,test_labels
训练数据
我们在这里直接使用sklearn函数,通过选择模型,然后直接生成其识别规则
#训练数据deftrain_tree(*data):x_train,x_test,y_train,y_test=dataclf=DecisionTreeClassifier()clf.fit(x_train,y_train)print("学习模型预测成绩:{:.4f}".format(clf.score(x_train,y_train)))print("实际模型预测成绩:{:.4f}".format(clf.score(x_test,y_test)))#返回学习模型returnclf
数据可视化
为了让我们的观察更加直观,我们还可以使用matplotlib来进行观测
defplot_imafe(test,test_labels,preds):plt.ion()plt.show()foriinrange(50):label,pred=test_labels[i],preds[i]title='实际值:{},predict{}'.format(label,pred)img=test[i].reshape(28,28)plt.imshow(img,cmap="binary")plt.title(title)plt.show()print('done')
结果
完整代码
importpandasaspdfromsklearn.treeimportDecisionTreeClassifierimportmatplotlib.pyplotaspltdefshuju(tr_path,ts_path,sep='\t'):train=pd.read_csv(tr_path,sep=sep)test=pd.read_csv(ts_path,sep=sep)#特征和结果分离train_features=train.iloc[:,:-1].valuestrain_labels=train.iloc[:,-1].valuestest_features=test.iloc[:,:-1].valuestest_labels=test.iloc[:,-1].valuesreturntrain_features,test_features,train_labels,test_labels#训练数据deftrain_tree(*data):x_train,x_test,y_train,y_test=dataclf=DecisionTreeClassifier()clf.fit(x_train,y_train)print("学习模型预测成绩:{:.4f}".format(clf.score(x_train,y_train)))print("实际模型预测成绩:{:.4f}".format(clf.score(x_test,y_test)))#返回学习模型returnclfdefplot_imafe(test,test_labels,preds):plt.ion()plt.show()foriinrange(50):label,pred=test_labels[i],preds[i]title='实际值:{},predict{}'.format(label,pred)img=test[i].reshape(28,28)plt.imshow(img,cmap="binary")plt.title(title)plt.show()print('done')train_features,test_features,train_labels,test_labels=shuju(r"C:\Users\twy\PycharmProjects\1\train_images.csv",r"C:\Users\twy\PycharmProjects\1\test_images.csv")clf=train_tree(train_features,test_features,train_labels,test_labels)preds=clf.predict(test_features)plot_imafe(test_features,test_labels,preds)
关于“python机器学习sklearn怎么实现识别数字”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python机器学习sklearn怎么实现识别数字”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
python多行注释符号怎么表示
python多行注释符号怎么表示这篇文章主要介绍“python多行...
-
python支持的操作系统是什么
python支持的操作系统是什么这篇文章主要介绍“python支持...
-
python如何判断列表为空
python如何判断列表为空这篇文章主要介绍“python如何判断...
-
Python如何利用D3Blocks绘制可动态交互的图表
-
2021年度编程语言揭晓
-
PPython:PHP 拥抱 Python 的利器
-
哪种Python IDE最适合你?这里有一份优缺点列表
-
Python分隔字符串函数用法split
aaa,bbb=str.split(‘&&’,2)第一个参数为分隔符第二个参数是要完成的最大拆分数...
-
php安全编程——python测试实例编写
-
神奇的Python模块:pdfkit,将Python抓取的网址内容保存pdf文件