1. 程式人生 > >機器學習實戰----kNN近鄰演算法問題記錄

機器學習實戰----kNN近鄰演算法問題記錄

1.import kNN。報錯:only 2 non-keyword arguments accepted

原因:group =array([1.0,1.1],[1.0,1.0],[0,0],[0,0.1]) 粗心少寫了兩個中括號

正確寫法:

group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])

2.AttributeError: 'dict' object has no attribute 'iteritems'

原因:python3.5中 iteritems變為items

錯誤寫法:

sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)

正確寫法:

sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)

3.argsort()函式的用法

舉例:

import numpy as np

x=np.array([3,1,2])

x.argsort() 輸出 array([1,2,0])

按照正常的索引 x[0]=3,x[1]=1,x[2]=2

x.argsort() 將陣列從小到大排序 [1,2,3] 輸出對應的索引值 [1,2,0]

再舉一例

y=np.array([1,4,3,-1,6,9])

按照正常的索引值  y[0]=1,y[1]=4,y[2]=3,y[3]=-1,y[4]=6,y[5]=9

y.argsort()將陣列從小到大排序[-1,1,3,4,6,9] 輸出對應的索引值[3,0,2,,1,4,5]

4.改進約會網站的配對效果的K-近鄰演算法

問題1:ValueError: invalid literal for int() with base 10: 'largeDoses'

無效的文字 資料型別不正確 

原因:使用datingTestSet.txt

解決方法:應該使用datingTestSet2.txt