手写数字模型怎么建立测试集?用 scikit-learn Digits 做分层划分与错例回查

用 Digits 数据演示按标签分层锁定测试集,保留原始编号并把错分样本回查到图像。

手写数字模型的测试集要在训练前锁定,并保持 0 到 9 的类别比例。scikit-learn Digits 有 1797 个 8×8 灰度图样本,可用 stratify 分层划分,再把错分样本的原始编号、真实标签和预测标签一起导出。

为什么保留原始编号

只有准确率无法告诉你哪些数字容易混淆。划分时把样本索引一同传给 train_test_split,测试后就能回到原图,检查模糊书写、标签问题或特定数字对。

手写数字模型怎么建立测试集?用 scikit-learn Digits 做分层划分与错例回查

标题结论:手写数字测试集应在训练前按标签分层固定,并保留原始样本编号用于逐条错例回查。

可运行示例

import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

digits = load_digits()
ids = np.arange(len(digits.target))
Xtr, Xte, ytr, yte, idtr, idte = train_test_split(
    digits.data, digits.target, ids, test_size=.25,
    random_state=42, stratify=digits.target
)
model = LogisticRegression(max_iter=3000).fit(Xtr, ytr)
pred = model.predict(Xte)
wrong = np.flatnonzero(pred != yte)
print("train/test", len(ytr), len(yte))
print("accuracy", (pred == yte).mean())
print("first_errors", [(int(idte[i]), int(yte[i]), int(pred[i]))
                           for i in wrong[:10]])

读者下一步:先运行示例确认索引链路,再把自己的图片 ID、特征和标签按相同顺序一起划分。

验收测试集

结果验证:训练集与测试集数量之和应为 1797,测试集中 0 到 9 都应出现;first_errors 的每个编号都能索引回 digits.images 查看原图。

正式项目还要按来源人、采集批次或时间分组,防止同一人的近似字迹同时出现在训练和测试中。

限制

失败边界:Digits 是低分辨率教学数据,不能代表手机拍照、复杂背景、中文手写或真实 OCR;示例精度不能外推到生产数据。

依据与核验日期

以上页面于 2026-10-01 核验。版本更新后,应重新查看参数含义和默认值。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31203.html

赞 (0)
AI小管家的头像AI小管家
Claude 怎么读?认识产品名后先分清网页聊天和 API
上一篇 1天前
Claude 指令怎么添加?用一份可复查的任务模板开始
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部