(实战篇)用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技术站

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

相关文章

  • 小白循环神经网络RNN LSTM 参数数量 门单元 cell units timestep batch_size

    小白循环神经网络RNN LSTM 参数数量 门单元 cell units timestep batch_size RNN循环神经网络 timestep batch_size LSTM及参数计算 keras中若干个Cell例如LSTMCell 1.RNN循环神经网络 先来解释一下 batch_size timestep 样本数据: 小明爱学习 小王爱学习 小李…

    2023年4月8日
    00
  • AI tensorflow实现OCR

    OCR

    tensorflow 2023年4月7日
    00
  • 机器学习笔记–KNN算法2-实战部分

    本文申明:本系列的所有实验数据都是来自【美】Peter Harrington 写的《Machine Learning in Action》这本书,侵删。 一案例导入:玛利亚小姐最近寂寞了,然后她就准备在一个在线社交网站搞网恋,但是凡是都有一个选择,按照她以往的经验,她接触了三种人: 1:不喜欢的人 2:魅力一般的人 3:特别有魅力的人 但是啊,尽管发现了这三…

    机器学习 2023年4月12日
    00
  • 深度学习之四大经典CNN技术浅析

    《TensorFlow实战》作者黄文坚做客【硬创公开课】,为我们讲解了关于四大经典CNN网络:AlexNet、VGGNet、Google Inception Net和ResNet的基本原理。本次公开课内容主要节选自作者《TensorFlow实战》第6章,关于这四大CNN网络实现方式可参考作者新书《TensorFlow实战》,其中有这几种网络的详细实现步骤。 …

    深度学习 2023年4月13日
    00
  • F.binary_cross_entropy_with_logits函数与F.binary_cross_entropy函数的关系(二分类问题)

           二元交叉熵(Binary cross entropy)是二分类中常用的损失函数,它可以衡量两个概率分布的距离,二元交叉熵越小,分布越相似,其公式如下: 我们用jupyter notebook举例解释一下, 假设 1个图像样本由神经网络处理后的输出是 size 10×4 的tensor,随机生成一个tensor, 使用Sigmoid对该tenso…

    人工智能概论 2023年4月27日
    00
  • win10 anaconda3 python3.6安装tensorflow keras tensorflow_federated详细步骤及在jupyter notebook运行指定的conda虚拟环境

    本文链接:https://blog.csdn.net/weixin_44290661/article/details/1026789071. 安装tensorflow keras tensorflow_federated详细步骤因为tensorflow很多依赖及版本兼容性问题,卸载麻烦,所以我是新建一个conda虚拟环境,专门用来运行tensorflow相关…

    Keras 2023年4月8日
    00
  • CAFFE学习笔记(三)在VS2013下生成需要的exe文件

    如我们所知,CAFFE_ROOT下有一个文件夹叫tools,里面中有许多cpp文件,它们各自有其不同的功能。但是很显然,当我们要完成某样工作时,我们是不能直接用cpp文件的,只能用exe文件。如何利用这些cpp文件生成exe文件呢?这就是本次博客的主题。请记住,一大堆繁琐的配置不是目的,我们的目标是成功compile和build文件夹tools中的cpp文件…

    2023年4月6日
    00
  • happynear_caffe编译时,缺少头文件caffe.pb.h的问题

    由于一些问题,需要编译caffe 的windows版本,用的是happynear的caffe版本,在caffe.pb.h遇到了问题 如何生成 caffe.pb.h        将protobuf 里的 protoc.exe 粘贴到 ..\src\caffe\proto里(已存在caffe.proto文件),打开控制台,输入protoc.exe caffe.…

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