KNN演算法Python實現

來源:互聯網
上載者:User

標籤:numpy   演算法   


好久沒有寫部落格了,心血來潮。寫一個剛學學習的KNN演算法,其實就是比相似度,靠的進的相似度高

廢話不說上代碼

 

from numpy import  *import operator #建立初始矩陣group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])label = ['A','A','B','B']def classfy(inX,dataSet,labes,k):    dataSetSize = dataSet.shape[0]#擷取矩陣的維度,就是矩陣的行數    diffMat = tile(inX,(dataSetSize,1))-dataSet#求相對距離    sqDiffMat = diffMat**2    sqDistance = sqDiffMat.sum(axis=1)    distance = sqDistance**0.5#兩點之間距離公式不解釋    sortedDistInicies = distance.argsort()#得到排序後的下標【2,3,1,0】    classCount = {}    for i in range(k):        voteIlabel = labes[sortedDistInicies[i]]#此處就和K相關了        classCount[voteIlabel] = classCount.get(voteIlabel,0)+1#記錄出現的次數    sortedClassCount = sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)    return sortedClassCount[0][0]#返回最終的結果classfy([0,0],group,label,3)


 

都在代碼註解裡面,ok完成

KNN演算法Python實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.