python项目练习——4.手写数字识别

使用Python和Scikit-learn库进行机器学习模型训练的项目——手写数字识别。

项目分析:

  1. 数据准备:使用公开数据集(如MNIST)作为训练和测试数据。
  2. 数据预处理:对图像数据进行归一化、展平等操作,以便输入到机器学习模型中。
  3. 模型选择:选择一个适合的机器学习模型,如支持向量机(SVM)、随机森林或神经网络(如多层感知机MLP)。
  4. 模型训练:使用训练数据对模型进行训练。
  5. 模型评估:使用测试数据对训练好的模型进行评估,计算准确率等指标。

 首先,确保您已经安装了scikit-learn和numpy库。如果没有安装,可以通过pip进行安装:

pip install scikit-learn numpy

编写代码:

import numpy as np  
from sklearn import datasets, svm, metrics  
from sklearn.model_selection import train_test_split  
from sklearn.preprocessing import StandardScaler  
from sklearn.neural_network import MLPClassifier  
  
# 1. 数据准备  
# 加载MNIST数据集  
digits = datasets.load_digits()  
  
# 2. 数据预处理  
# 将图像数据展平为一维数组  
n_samples = len(digits.images)  
data = digits.images.reshape((n_samples, -1))  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(data, digits.target, test_size=0.5, shuffle=False)  
  
# 数据标准化  
scaler = StandardScaler()  
X_train = scaler.fit_transform(X_train)  
X_test = scaler.transform(X_test)  
  
# 3. 模型选择  
# 使用多层感知机(MLP)作为分类器  
mlp = MLPClassifier(hidden_layer_sizes=(50,), max_iter=10, alpha=1e-4,  
                    solver='sgd', verbose=10, random_state=1,  
                    learning_rate_init=.1)  
  
# 4. 模型训练  
mlp.fit(X_train, y_train)  
  
# 5. 模型评估  
# 预测测试集结果  
predictions = mlp.predict(X_test)  
  
# 计算准确率  
print("Classification report for classifier %s:\n%s\n"  
      % (mlp, metrics.classification_report(y_test, predictions)))  
print("Confusion matrix:\n%s" % metrics.confusion_matrix(y_test, predictions))

相关推荐

  1. python项目练习——4.数字识别

    2024-03-27 05:28:03       46 阅读
  2. 数字识别——使用MATLAB,python的实现

    2024-03-27 05:28:03       44 阅读
  3. MINIST数据集&数字识别

    2024-03-27 05:28:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 05:28:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 05:28:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 05:28:03       87 阅读
  4. Python语言-面向对象

    2024-03-27 05:28:03       96 阅读

热门阅读

  1. eclipse启动报错

    2024-03-27 05:28:03       40 阅读
  2. 阿里云子域名配置,且不带端口访问

    2024-03-27 05:28:03       43 阅读
  3. 面试算法-109-移除元素

    2024-03-27 05:28:03       36 阅读
  4. ADC456456

    2024-03-27 05:28:03       42 阅读
  5. AI学习笔记— 机器学习的种类

    2024-03-27 05:28:03       36 阅读
  6. 基于pear-admin-flask 的 flask 使用教程

    2024-03-27 05:28:03       34 阅读
  7. 主流开发语言和开发环境介绍

    2024-03-27 05:28:03       41 阅读
  8. 主流开发语言和开发环境介绍

    2024-03-27 05:28:03       40 阅读