python机器学习sklearn实现识别数字

 更新时间:2022年03月29日 14:26:17   作者:小唐同学大呆子  
本文主要介绍了python机器学习sklearn实现识别数字,主要简述如何通过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)

到此这篇关于python机器学习sklearn实现识别数字的文章就介绍到这了,更多相关python sklearn识别数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pycharm Terminal 与Project interpreter 安装包不同步问题解决

    Pycharm Terminal 与Project interpreter 安装

    本文主要介绍了Pycharm Terminal 与Project interpreter 安装包不同步问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 结合Python的SimpleHTTPServer源码来解析socket通信

    结合Python的SimpleHTTPServer源码来解析socket通信

    SimpleHTTPServer是Python中一个现成的HTTP服务器例子,本文我们将结合Python的SimpleHTTPServer源码来解析socket通信,我们先来看一下socket的基本概念:
    2016-06-06
  • python中if及if-else如何使用

    python中if及if-else如何使用

    在本篇文章里小编给大家整理的是关于python中if及if-else使用方法,需要的朋友们可以参考下。
    2020-06-06
  • Python爬虫实战项目掌握酷狗音乐的加密过程

    Python爬虫实战项目掌握酷狗音乐的加密过程

    在常见的几个音乐网站里,酷狗可以说是最好爬取的啦,什么弯都没有,所以最适合小白入门爬虫,本篇针对爬虫零基础的小白,所以每一步骤我都截图并详细解释了,其实我自己看着都啰嗦,归根到底就是两个步骤的请求,还请大佬绕路勿喷
    2021-09-09
  • 解决python虚拟环境切换无效的问题

    解决python虚拟环境切换无效的问题

    这篇文章主要介绍了解决python虚拟环境切换无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 基于Python编写简单实用的日志装饰器

    基于Python编写简单实用的日志装饰器

    在写代码的时候,往往会漏掉日志这个关键因素,导致功能在使用的时候出错却无法溯源。这个时候只要利用日志装饰器就能解决,本文将用Python自制一个简单实用的日志装饰器,需要的可以参考一下
    2022-05-05
  • python多进程登录远端服务器

    python多进程登录远端服务器

    这篇文章主要介绍了python多进程登录远端服务器,文章应用实例简易的方式详细讲解python多进程登录远端服务器的相关资料,需要的朋友可以参考以下文章的具体内容
    2021-10-10
  • python通过pil模块获得图片exif信息的方法

    python通过pil模块获得图片exif信息的方法

    这篇文章主要介绍了python通过pil模块获得图片exif信息的方法,实例分析了Python中pil模块的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • Python中的单例模式与反射机制详解

    Python中的单例模式与反射机制详解

    这篇文章主要为大家介绍了Python中的单例模式与反射机制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • python socket多线程通讯实例分析(聊天室)

    python socket多线程通讯实例分析(聊天室)

    这篇文章主要介绍了python socket多线程通讯方法,以聊天室程序实例分析了Python基于Socket实现多线程通信的相关技巧,需要的朋友可以参考下
    2016-04-04

最新评论