python机器学习sklearn实现识别数字
作者:小唐同学大呆子 发布时间:2023-08-18 17:57:19
标签:python,sklearn,识别数字
简介
本文主要简述如何通过sklearn模块来进行预测和学习,最后再以图表这种更加直观的方式展现出来
数据集
学习数据
预测数据
数据处理
数据分离
因为我们打开我们的的学习数据集,最后一项是我们的真实数值,看过小唐上一篇的人都知道,老规矩先进行拆分,前面的特征放一块,后面的真实值放一块,同时由于数据没有列名,我们选择使用iloc[]来实现分离
def shuju(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].values
train_labels=train.iloc[:,-1].values
test_features = test.iloc[:, :-1].values
test_labels = test.iloc[:, -1].values
return train_features,test_features,train_labels,test_labels
训练数据
我们在这里直接使用sklearn函数,通过选择模型,然后直接生成其识别规则
#训练数据
def train_tree(*data):
x_train, x_test, y_train, y_test=data
clf=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)))
#返回学习模型
return clf
数据可视化
为了让我们的观察更加直观,我们还可以使用matplotlib来进行观测
def plot_imafe(test,test_labels,preds):
plt.ion()
plt.show()
for i in range(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')
结果
完整代码
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
def shuju(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].values
train_labels=train.iloc[:,-1].values
test_features = test.iloc[:, :-1].values
test_labels = test.iloc[:, -1].values
return train_features,test_features,train_labels,test_labels
#训练数据
def train_tree(*data):
x_train, x_test, y_train, y_test=data
clf=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)))
#返回学习模型
return clf
def plot_imafe(test,test_labels,preds):
plt.ion()
plt.show()
for i in range(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)
来源:https://blog.csdn.net/weixin_52521533/article/details/123802259


猜你喜欢
- 可以把多个页面相同的部分提取出来,放在一个母板里,这些页面只需要继承这个母板就好了通常会在母板中定义页面专用的 CSS 块和 JS 块,方便
- 一、实现过程本文对经典手写数字数据集进行多分类,损失函数采用交叉熵,激活函数采用ReLU,优化器采用带有动量的mini-batchSGD算法
- 将电话簿TeleAddressBook.txt和电子邮件EmailAddressBook.txt合并为一个完整的AddressBook.tx
- 一、为什么要使用Python进行数据分析?python拥有一个巨大的活跃的科学计算社区,拥有不断改良的库,能够轻松的集成C,C++,Fort
- PDOStatement::fetchPDOStatement::fetch — 从结果集中获取下一行(PHP 5 >= 5.1.0,
- python共现矩阵实现最近在学习python词库的可视化,其中有一个依据共现矩阵制作的可视化,感觉十分炫酷,便以此复刻。项目背景本人利用爬
- 译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用Python
- 目录文件读写读文件写文件StringIO和BytesIOStringIOBytesIO操作文件和目录环境变量操作文件和目录文件读写读文件tr
- 目录前言一、算法思想算法分析思想图解二、代码展示1.创建树节点结构2.实现倾倒动作主递归函数数据初始化总结前言有一个充满水的8品脱的水壶和两
- 一、前端工具vscode1.1、概述前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以
- 1.加载数据库,数据库的配置不能写死在seting.py文件中,下面的方式是读取另外一个文件,配置数据库:config = '
- 一 前言 问题的存在 从代码级别上,也就是应用层次上考虑代码安全的话(也就是不考虑底层的语言本身等问题的漏洞),脚本安全问题就是函数和变量的
- 前言大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。说到切图,Python 就可以实
- 比如代码 binfo = {'name':'jay','age':20,'pytho
- 目录简介图形加载和说明图形的灰度灰度图像的压缩原始图像的压缩总结简介本文将会以图表的形式为大家讲解怎么在NumPy中进行多维数据的线性代数运
- 本文实例讲述了JavaScript常用的返回,自动跳转,刷新,关闭语句。分享给大家供大家参考。具体如下:1. Javascript 返回上一
- 使用axios遇到的相对路径和绝对路径问题部分依赖说明:"vue": "^2.5.2","
- SpringBoot环境启动项目创建数据库表使用环境windows+eclipse+mysql+navicat步骤1.创建SpringBoo
- 从这一章开始进入正式的算法学习。首先我们学习经典而有效的分类算法:决策树分类算法。1、决策树算法决策树用树形结构对样本的属性进行分类,是最直
- IE8 的测试版发布,ACID 3 测试正式推出,听上去是让人兴奋的技术进步,而对中文互联网站却是极大的威胁:这意味着,超过半数的中文网页在