机器学习-手写数字识别系统

本文介绍如何利用Python和机器学习技术,特别是k近邻算法,构建一个手写数字识别系统。通过处理和分析数据集中的数字图像,实现对手写数字的准确识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要两个数据包,里边有许多数字图像,像这样:

数据包

import numpy as np
import operator
from os import listdir

"""分类函数"""
def classfy0(inX, dataSet, labels, k):  # 参数分别为测试样本,训练样本,训练样本标签,近邻个数
    dataSetSize = dataSet.shape[0]  # 返回行列数,0为行,列为1
    diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet  # tile是按照某个方向复制元素,行方向复制四行,列方向复制一行,然后减去每个训练样本值
    sqDiffMat = diffMat ** 2  # 乘方运算
    sqDistances = sqDiffMat.sum(axis=1)  # 轴为1的方向(横向)求和
    distances = sqDistances ** 0.5  # 乘方运算,等同于开根号
    sortedDistIndicies = distances.argsort()  # 返回从小到大排序的索引值(原数组不动)
    classCount = {}  # 字典(键值对)
    for i in range(k):  # for-each循环,统计前k个每个分类有多少个
        voteIlabel = labels[sortedDistIndicies[i]]  # 记录每个的标签
        classCount[voteIlabel] = classCount.get(vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值