机器学习实战_k近邻算法识别手写数字
2022/2/25 1:30:45
本文主要是介绍机器学习实战_k近邻算法识别手写数字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码如下:
import numpy as np import operator from os import listdir def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet sqDiffMat = diffMat ** 2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances ** 0.5 sortedDistIndices = distances.argsort() classCount = {} for i in range(k): voteIlabel = labels[sortedDistIndices[i]] classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] def img2vector(filename): returnVect = np.zeros((1, 1024)) fr = open(filename) for i in range(32): lineStr = fr.readline() for j in range(32): returnVect[0, 32 * i + j] = int(lineStr[j]) return returnVect def handwritingClassTest(): hwLabels = [] trainingFileList = listdir('trainingDigits') m = len(trainingFileList) trainingMat = np.zeros((m, 1024)) for i in range(m): fileNameStr = trainingFileList[i] classNumber = int(fileNameStr.split('_')[0]) hwLabels.append(classNumber) trainingMat[i, :] = img2vector('trainingDigits/%s' % (fileNameStr)) testFileList = listdir('testDigits') errorCount = 0.0 mTest = len(testFileList) for i in range(mTest): fileNameStr = testFileList[i] classNumber = int(fileNameStr.split('_')[0]) vectorUnderTest = img2vector('testDigits/%s' % (fileNameStr)) classifierResult = classify0(vectorUnderTest, trainingMat, hwLabels, 3) print("the classifier came back with: %d\t the real answer is: %d" % (classifierResult, classNumber)) if (classifierResult != classNumber): errorCount += 1.0 print("the total number of errors is: %d\nthe total error rate is %f%%" % (errorCount, errorCount / mTest)) if __name__ == '__main__': handwritingClassTest()
这篇关于机器学习实战_k近邻算法识别手写数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-24手把手教你使用MDK仿真调试
- 2024-01-10基于“小数据”的机器学习
- 2024-01-08扩展卡尔曼滤波:提高机器学习性能的利器
- 2023-12-26各种二端口滤波器网络仿真遇到的问题
- 2023-12-14机器学习-搜索技术:从技术发展到应用实战的全面指南
- 2023-12-12机器学习 - 决策树:技术全解与案例实战
- 2023-12-05机器学习-学习率:从理论到实战,探索学习率的调整策略
- 2023-12-04解锁机器学习-梯度下降:从技术到实战的全面指南
- 2023-11-30回归算法全解析!一文读懂机器学习中的回归模型
- 2023-11-30机器学习 - 似然函数:概念、应用与代码实例