91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 725KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-16
  • 語言: 其他
  • 標簽: 機器學習??

資源簡介

本資源包涵了K-近鄰算法識別手寫數字系統(包括詳細的代碼注釋),和原始訓練測試數據。

資源截圖

代碼片段和文件信息

#?-*-?coding:?utf-8?-*-
“““
Created?on?Sun?Mar?15?15:51:15?2015

@author:?bobo
“““

“““
轉換圖片
“““
import?os?
import?operator
from?numpy?import?*
import?sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)

“““
將每張圖片轉換成向量形式
即把每張圖片轉換成一維1*1024矩陣形式
“““
def?img2vector(filename):
????“““
????filename代表文件名稱
????“““
????returnVector?=?zeros((11024))##聲明一個0矩陣
????fr?=?open(filename)
????for?i?in?range(32):
????????lineStr?=?fr.readline()##°每一行文件
????????for?j?in?range(32):
????????????returnVector[032*i+j]?=?int(lineStr[j])##一共32行,全部存儲到returnVector里面
????fr.close()
????return?returnVector


def?classify(inXdataSetlabelsk):
????“““
????四個參數,inX是測試向量,dataSet樣本向量數據,labels是標簽,k是選取前k個做評測
????tile(An)用于重復A矩陣n次????
????argsort()返回的是數組值從小到大的索引
????list.get(kd)
????get()相當于一條if...else...語句參數k在字典中,字典將返回list[k];如果參數k不在字典中則返回參數d如果K在字典中則返回k對應的value值;
????例子:
????l?=?{5:23:4}
????print?l.get(30)返回的值是4;
????Print?l.get(10)返回值是0;(該例來源于網絡)
????“““
????dataSetSize?=?dataSet.shape[0]##shpe函數用于返回矩陣的長度,如shape[0]返回第一維矩陣長度,shape[1]返回第二維矩陣長度以此類推,還有其他功能執行查閱
????diffMat?=?tile(inX(dataSetSize1))?-?dataSet##tile函數主要功能是重復矩陣多少次,重復了測試向量,與每一個樣本相減
????sqDiffMat?=?diffMat**2##計算平方
????sqDistances?=?sqDiffMat.sum(axis?=?1)##計算矩陣橫軸的和
????distances?=?sqDistances**0.5##平方
????sortedDistIndicies?=?distances.argsort()##用argsort排序
????classCount?=?{}
????for?i?in?range(k):
????????voteLabel?=?labels[sortedDistIndicies[i]]##通過索引得到前該距離所屬的類型
????????classCount[voteLabel]?=?classCount.get(voteLabel0)+1##相應的類型+1
????sortedClassCount?=?sorted(classCount.iteritems()key?=?operator.itemgetter(1)reverse?=?True)
????return?sortedClassCount[0][0]

“““
classTest()函數用于處理32*32的數據,
“““
def?classTest():
????file_object?=?open(‘result.txt‘?‘w‘)
????Labels?=?[]
????trainingFileList?=?os.listdir(“./digits/trainingDigits/“)##listdir函數用于獲取該目錄下的文件列表,并且以數組的方式存儲
????length?=?len(trainingFileList)##獲取數組長度
????trainingMat?=?zeros((length1024))##聲明一個length*1024的矩陣用于存儲所有樣本的向量形式
????for?i?in?range(length):
????????fileNameStr?=?trainingFileList[i]##獲取列表中每一個文件名(包含擴展名)
????????fileName?=?fileNameStr.split(‘.‘)[0]##獲取列表中每一個文件名(不包含擴展名)
????????numClass?=?fileName.split(‘_‘)[0]##獲取該文件所屬的類別(因為文件名都是以‘數字類別_第幾個樣本.txt’形式的,所以需要進行兩次的split函數)
????????Labels.append(numClass)##以隊列的形式加入到Labels的隊尾
????????trainingMat[i:]?=?img2vector(“./digits/trainingDigits/“+?fileNameStr)##用img2vector()函數處理32*32的圖片矩陣,存入trainingMat中
????testFileList?=?os.listdir(“./digits/testDigits/“)##測試組的文件列表,下面的代碼意思如上,多余的就不寫了
????##erreCount?=?0.0
????lengthTest?=?len(testFileList)
????for?i?in?range(lengthTest):
????????fileNameStr?=?testFileList[i]
????????fileName?=?fileNameStr.split(‘.‘)[0]
????????numClass?=?fileName.split(‘_‘)[0]
????????vectorUnderTest?=?img2vector(“./digits/testDigits/“+fileNameStr)
????????classifierResult?=??classify(vectorUnderTesttrainingMatLabels3)
????????file_object.write(str(classifierResult)+“???????“+str(numClass)+‘\n‘)
????????##print

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????739988??2015-03-15?16:02??digits.zip
?????文件????????4164??2015-03-16?16:19??RecongnizeNum.py

評論

共有 條評論