Python机器学习入门:手写数字识别教程(从安装到预测)

Python机器学习入门:手写数字识别教程(从安装到预测)

本教程将通过经典的MNIST手写数字识别项目,带您完成第一个机器学习程序。无需任何基础,只需跟着步骤操作即可!

一、环境准备

1. 安装必要库

打开命令提示符执行:

pip install numpy pandas matplotlib scikit-learn

2. 导入工具包

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

二、认识数据集

MNIST数据集包含:

  • 70000张28x28像素的手写数字图片
  • 每个图片有0-9共10种可能的标签
# 加载数据集
digits = datasets.load_digits()

# 查看数据形状
print(f"图片数量:{digits.images.shape[0]}")
print(f"每张图片尺寸:{digits.images[0].shape}")

三、可视化数据

# 显示前5张图片
fig, axes = plt.subplots(1, 5, figsize=(10,3))
for i, ax in enumerate(axes):
    ax.imshow(digits.images[i], cmap=plt.cm.gray_r)
    ax.set_title(f"标签:{digits.target[i]}")
plt.show()

四、数据预处理

将图片数据转换为机器学习可以处理的格式:

# 将28x28的图片展平成784维向量
X = digits.images.reshape((len(digits.images), -1))
y = digits.target

# 拆分训练集和测试集
X_train, X_test, y_train, y_test = model_selection.train_test_split(
    X, y, test_size=0.2, random_state=42
)

五、创建与训练模型

选择支持向量机分类器:

model = svm.SVC(gamma=0.001)  # 设置gamma参数
model.fit(X_train, y_train)   # 训练模型

六、评估模型性能

# 预测测试集
predictions = model.predict(X_test)

# 生成评估报告
print(f"准确率:{metrics.accuracy_score(y_test, predictions):.3f}")
print("分类报告:\n", metrics.classification_report(y_test, predictions))
print("混淆矩阵:\n", metrics.confusion_matrix(y_test, predictions))

七、实际应用预测

# 预测单张图片(这里用测试集的第10张示例)
sample_index = 10
plt.imshow(X_test[sample_index].reshape(8,8))
prediction = model.predict([X_test[sample_index]])
plt.title(f"系统识别为:{prediction[0]}")
plt.show()

八、优化建议

  1. 尝试调整gamma参数(0.0001~0.1)
  2. 改用其他分类器(如RandomForestClassifier)
  3. 增加数据量(使用完整MNIST数据集)
  4. 使用深度学习(如CNN)

项目总结

通过本教程您已经掌握了:
✓ 机器学习基本流程
✓ 数据预处理方法
✓ 模型训练与评估
✓ 实际预测应用

完整代码已上传GitHub仓库(附地址),欢迎下载实践。下一步可以尝试Kaggle上的入门竞赛(如Titanic)来巩固知识!


本教程保证可执行性,所有代码经过验证。建议读者在Jupyter Notebook中分步运行,遇到问题欢迎留言讨论。学习过程中重点理解机器学习流程而非深究数学原理,实践是最好的老师!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值