(实战篇)用Python识别手写数字

我们使用 Scikit-learn 库实现一个简单的深度学习训练示例,训练目标为:识别手写数字。

以下是实现手写数字识别的完整示例代码:


from sklearn import datasets
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt

# 加载手写数字数据集
digits = datasets.load_digits()

# 获取特征值和目标值
X = digits.data
y = digits.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 训练SVM分类器
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)

# 预测测试集数据
y_pred = clf.predict(X_test)

# 计算分类准确率
accuracy = accuracy_score(y_test, y_pred)
print("分类准确率:", accuracy)

# 随机显示10个测试集数据和其预测结果
fig, axes = plt.subplots(nrows=2, ncols=5, figsize=(10, 4))
for i, ax in enumerate(axes.flat):
    ax.imshow(X_test[i].reshape(8, 8), cmap=plt.cm.gray_r, interpolation='nearest')
    ax.set_title("like:{}".format(y_pred[i]))
    ax.set_xticks([])
    ax.set_yticks([])
plt.show()

以上对手写数字进行分类的整个代码逻辑如下:

  1. 第一步,我们加载了手写数字数据集,其中包含8x8像素的数字图像,共计 1797 个样本。
  2. 然后,我们将数据集划分为训练集测试集,训练集用来让SVM分类器进行训练;测试集是对训练的结果进行预测。然后计算出分类的准确率,并输出。
  3. 最后,我们会随机选取10个测试集数据,显示其图像和预测结果。

输出的预测结果:

(实战篇)用Python识别手写数字

需要注意的是,手写数字识别是一个比较复杂的问题,需要对图像进行预处理、特征提取等一系列操作。上述示例中没有进行这些操作,仅仅是对原始像素数据进行分类。在实际应用中,需要根据具体情况进行调整和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:(实战篇)用Python识别手写数字 - Python技术站

(0)
上一篇 2023年2月12日 下午9:04
下一篇 2023年4月9日 下午10:04

相关文章

  • Mac中安装tensorflow(转)

    当我们开始学习编程的时候,第一件事往往是学习打印”Hello World”。就好比编程入门有Hello World,机器学习入门有MNIST。MNIST是一个识别手写数字的程序MINIST的程序的详细介绍地址如下:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html 一、TensorFlow…

    tensorflow 2023年4月8日
    00
  • anaconda安装keras

    1.打开anaconda Navigator    2.选择environments -root – open terminal      3.在弹出来的窗口输入pip install keras,回车,完美     4.现在搜索一下已安装的包里就有keras了  

    2023年4月5日
    00
  • 说说GAN(生成式对抗网络)

    在Auto-encoder中,input data通过一个encoder神经网络得到一个维度的较低的向量,称这个向量为code,code经过一个decoder神经网络后输出一个output data。encoder 网络的作用是用来发现给定数据的压缩表示。decoder网络使原始输入的尽可能地相同的重建的表示。在训练时,decoder 强迫 auto-enc…

    2023年4月5日
    00
  • LeNet-5以及tensorflow2.1实现

    目录 LeNet-5 LeNet-5网络结构 tensorflow实现LeNet-5 LeNet-5网络结构 其中池化层均采用最大池化,每一层卷积层后使用的激活函数是sigmoid函数。这里补充一下padding的两种方式,一个是SAME(全0填充),另一个是VALID(不填充)。在LeNet-5中,卷积层一致采用padding=’SAME’的方式进行填充,…

    2023年4月8日
    00
  • windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras

    转自:windows10(64位)Anaconda3+Python3.6搭建Tensorflow(cpu版本)及keras 1.本来电脑安装的是anaconda3 5.3.1,但安装的python版本是3.7,后来卸载了安装anaconda3 4.4.0,这个版本是3.6 2.打开Anaconda Prompt conda –version //检查Ana…

    2023年4月8日
    00
  • [Caffe] ubuntu14.04下使用OpenBLAS加速Caffe

      sudo apt-get install libopenblas-dev     二、手动从source安装   1. 下载OpenBLAS并编译 1 git clone https://github.com/xianyi/OpenBLAS.git 2 cd OpenBLAS 3 make -j8 4 sudo make PREFIX=/usr/loca…

    Caffe 2023年4月6日
    00
  • 【原创】机器学习算法原理与实践-朴素贝叶斯(文章迁移)

    文章迁移说明:此文已由lightinglei于2019-02-18发布,是本人的另外一个账号,现同步迁移至本账号 一、朴素贝叶斯原理介绍 书籍上对概念的介绍,因引入了很多数学符号,看起来比较晦涩难懂,下面我们以案例的形式先带大家回顾下概率的一些基本知识点,下表为互联网行业不同岗位、不同体重是否会被女神喜欢(纯属虚构,哈哈~) 先通过几个小问题回顾下知识点: …

    机器学习 2023年4月12日
    00
  • AFM模型 pytorch示例代码

    1.AFM模型pytorch实现。 $hat{y}_{AFM}=w_{0} + sum_{i=1}^{n}w_{i}x_{i}+p^{T}sum_{i=1}^{n-1}sum_{j=i+1}^{n}a_{ij}(v_{i}v_{j})x_{i}x_{j}$ $a_{ij}^{‘}=h^{T}Relu(W(v_{i}v_{j})x_{i}x_{j}+b)$ $…

    2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部