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

相关文章

  • TensorFlow中assign函数

    tf.assign assign ( ref , value , validate_shape = None , use_locking = None , name = None ) 定义在:tensorflow/python/ops/state_ops.py 参见指南:变量>变量帮助函数 通过将 “value” 赋给 “ref” 来更新 “ref”.…

    tensorflow 2023年4月6日
    00
  • 10. 深度学习实践:循环神经网络 RNN

    循环神经网络(recurrent neural network,RNN)(1986),一类用于处理序列数据的NN。正如卷积网络可很容易地扩展到具有很大宽度和高度的图像,RNN可以很容易扩展到更长的序列、大多数RNN也可处理可变长度的序列。 在模型的不同部分共享参数。能够使得模型扩展到不同形式的样本并进行泛化。CNN中如何共享参数已经知道了,本节将看到如何在R…

    2023年4月8日
    00
  • Python_sklearn机器学习库学习笔记(一)_Feature Extraction and Preprocessing(特征提取与预处理)

      # Extracting features from categorical variables #Extracting features from categorical variables 独热编码 from sklearn.feature_extraction import DictVectorizer onehot_encoder=DictVec…

    机器学习 2023年4月10日
    00
  • 什么是生成对抗网络 (GAN)

    学习资料: PyTorch GAN 教程 Tensorflow 50行 GAN 代码 论文 Generative Adversarial Networks Hello 大家好, 欢迎观看有趣的机器学习系列视频, 今天我们会来说说现在最流行的一种生成网络, 叫做 GAN, 又称生成对抗网络, 也是 Generative Adversarial Nets 的简称…

    GAN生成对抗网络 2023年4月7日
    00
  • keras—-resnet-vgg-xception-inception

     来源: https://www.pyimagesearch.com/2017/03/20/imagenet-vggnet-resnet-inception-xception-keras/   classify_image.py #encoding:utf8 import keras # import the necessary packages from …

    2023年4月8日
    00
  • visualization of filters keras 基于Keras的卷积神经网络(CNN)可视化

    https://adeshpande3.github.io/adeshpande3.github.io/ https://blog.csdn.net/weiwei9363/article/details/79112872 https://blog.csdn.net/and_w/article/details/70336506 https://hackerno…

    2023年4月8日
    00
  • pytorch 使用的时候的 model.train() 和 model.eval()

    Do need to use model.eval() when I test?Sure, Dropout works as a regularization for preventing overfitting during training.It randomly zeros the elements of inputs in Dropout layer…

    PyTorch 2023年4月6日
    00
  • PyTorch中的CUDA怎么使用

    本篇内容主要讲解“PyTorch中的CUDA怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PyTorch中的CUDA怎么使用”吧! 前言 CUDA(Compute Unified Device Architecture)是NVIDIA推出的异构计算平台,PyTorch中有专门的模块torch.cuda来设…

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