zoukankan      html  css  js  c++  java
  • 机器学习-KNN识别手写数字

    逻辑:

    代码

    import os
    from com.test.my_test03 import *
    
    # 将每一个文件的内容拼接成一行
    def img2vector(fileName):
        returnVect = np.zeros((1, 1024))
        file = open(fileName)
        for i in range(32):
            line = file.readline()
            if(line != "
    "):
                for j in range(32):
                    returnVect[0, 32*i +j] = int(line[j])
        return returnVect
    
    class IdentifImgClassTest(object):
        # 每个文件的代表数字
        hwLabels = []
        # 获取TrainData目录下所有的文件
        trainingFileList = os.listdir('D:/code/python/test2/data/TrainData')
        # 训练集的数据量,空间中分布的数据量  m=1934
        m = len(trainingFileList)
        # 1934*1024的零矩阵
        trainingMat = np.zeros((m, 1024))
        # 构造训练集
        for i in range(m):
            fileName = trainingFileList[i]
            fileNameSplit = fileName.split('.')[0]
            num = int(fileNameSplit.split('_')[0])
            hwLabels.append(num)
            trainingMat[i, :] = img2vector('D:/code/python/test2/data/TrainData/%s' % fileName)
    
        #构造测试集
        testFileList = os.listdir('D:\code\python\test2\data\TestData')
        errorCount = 0.0
        mTest = len(testFileList)
        for i in range(mTest):
            fileNameStr = testFileList[i]
            fileStr = fileNameStr.split('.')[0]
            classNumStr = int(fileStr.split('_')[0])
            vectorUnderTest = img2vector('D:/code/python/test2/data/TestData/%s' % fileNameStr)
            # 将训练集数据和第一条测试数据 以及K值传递给classify这个方法
            classifierResult = classify(vectorUnderTest, trainingMat, hwLabels, 3)
            print("识别出的数字是: %d, 真实数字是: %d" % (classifierResult, classNumStr))
            if (classifierResult != classNumStr): errorCount += 1.0
        print("
    识别错误次数 %d" % errorCount)
        errorRate = errorCount / float(mTest)
        print("
    正确率: %f" % (1 - errorRate))
    
    if __name__ == '__main__':
        IdentifImgClassTest()

    结果:

  • 相关阅读:
    appium的python异常处理
    appium环境搭建
    什么是Capability
    移动端自动化测试-WTF Appium
    python-selenium,关于页面滑动
    接口测试的要点
    共享文件夹在本机桌面创建快捷方式
    hosts文件失效,配置的域名不能成功访问
    隔一段时间应用就会挂掉(进程在,但停止响应,也无log输出),必须重启tomcat
    在同步方法中调用异步方法时如何避免死锁问题
  • 原文地址:https://www.cnblogs.com/bigdata-familyMeals/p/14617509.html
Copyright © 2011-2022 走看看