概览
所有字段以收录时的公开信息为准
- 项目名称
- KNN 图像分类入门
- 原始名称
- 未提供
- 别名
- KNN 图像分类、图像分类、KNN、K 近邻、机器学习分类
- 一句话简介
- 用 scikit-learn 的 KNN 做图像分类,含训练、评估与准确率输出。
- 详细介绍
示例把图像展平成特征向量,交给 KNN 分类器训练,并划分训练集与测试集评估准确率。脚本内置断言校验准确率下限,跑完直接打印结果。适合理解图像分类的最小闭环:特征、模型、评估。
- 分类
- 人工智能与机器学习
- 语言
- Python
- 技术栈
- scikit-learn
- 上手难度
- 入门
- Star 数
- 未提供
- 许可证
- MIT
- 作者
- 开源拾遗
获取方式
优先使用原始仓库
本项目通过以下方式获取:站内代码片段
站内代码片段
58 行
文件snippets/knn-classify.py
"""KNN 图像分类入门 —— 站内原创示例代码
用途:用 scikit-learn 自带的 8x8 手写数字图像数据集,训练 K 近邻分类器并评估准确率。
这是理解「图像分类」最基本流程的最小示例:数据 -> 特征 -> 训练 -> 评估。
依赖:scikit-learn(pip install scikit-learn)
运行:python knn-classify.py
许可:MIT(开源拾遗原创,可自由使用与修改)
"""
from sklearn.datasets import load_digits
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
K = 5
def main():
# 1. 载入数据:1797 张 8x8 手写数字图片,每张展平成 64 维特征
digits = load_digits()
images = digits.images
features = digits.data
labels = digits.target
print("样本数:", features.shape[0], " 特征维度:", features.shape[1])
# 2. 划分训练集与测试集
x_train, x_test, y_train, y_test = train_test_split(
features, labels, test_size=0.2, random_state=42, stratify=labels
)
# 3. 训练 KNN(直接比较像素距离,是最朴素的图像分类基线)
model = KNeighborsClassifier(n_neighbors=K)
model.fit(x_train, y_train)
# 4. 评估
predictions = model.predict(x_test)
accuracy = accuracy_score(y_test, predictions)
print("K =", K)
print("测试集准确率: %.4f" % accuracy)
# 5. 看一眼混淆情况
matrix = confusion_matrix(y_test, predictions)
print("混淆矩阵对角线(每类正确数):", [int(matrix[i][i]) for i in range(10)])
# 自检:KNN 在该数据集上准确率应明显高于 0.9
assert accuracy > 0.9, accuracy
# 展示第一张测试图的预测结果
print("第一张测试图真实值:", int(y_test[0]), " 预测值:", int(predictions[0]))
print("图片像素(8x8):")
for row in x_test[0].reshape(8, 8):
print("".join("#" if value > 8 else "." for value in row))
print("断言通过")
if __name__ == "__main__":
main()
站内原创示例代码,仅演示核心思路,许可证为 MIT。本条目为站内整理内容,未提供原始仓库地址。
安装与运行
命令均来自公开资料
环境与依赖
- Python 3.9+
- scikit-learn
安装命令
未提供
运行命令
python snippets/knn-classify.py
数据与硬件
未核实的字段不会编造
- 数据集说明
- 未提供
- 硬件要求
- 未提供
运行验证状态
四态徽章
实验已验证
已按说明完成安装、启动,并跑通实验或核心流程,结果可复现。
- 未测试
- 依赖安装已测试
- 基本启动已测试
- 实验已验证
说明:只有真正执行过对应步骤才会升级状态;未测试 表示仅核对了公开信息。
- 当前状态
- 实验已验证
- 最后核对
- 2026-10-18
- 核对版本
- 待核实
- 验证说明
已在本机 Python 3.14.6 + scikit-learn 1.9.1 实际运行:测试集准确率 0.9833,内置断言通过。
许可证与引用
转载与引用请保留出处
- 许可证
- MIT
- 作者 / 组织
- 开源拾遗
- 原始仓库
- 未提供
- 核对版本
- 待核实
- 最后核对
- 2026-10-18
- 收录日期
- 2026-10-18
引用建议
KNN 图像分类入门 / 开源拾遗. 《开源拾遗》收录,收录日期 2026-10-18,最后核对 2026-10-18. 许可证:MIT.
许可证以原始仓库的 LICENSE 文件为准;本站不对许可证做法律判断。