機器學習實戰----kNN近鄰演算法問題記錄
阿新 • • 發佈:2018-12-14
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