機器學習實戰——讀書筆記機器學習
書籍奉上👇👇👇學習
連接:https://pan.baidu.com/s/1Z0gI2xeu7GZjWVPmjxBBkQ
提取碼:7u0n 測試
裏邊還有一些其餘的書你們也能夠看看,我的以爲不錯~spa
最近在看機器學習實戰這本書,寫的筆記用於幫助本身學習,歡迎你們指導~code
KNN——2.1.1中的代碼,其餘的代碼會隨着個人讀書進度記錄blog
歐氏距離公式:排序
1 ''' 2 機器學習實戰——KNN基礎代碼實現 3 4 ''' 5 6 from numpy import * 7 import operator 8 9 def createDataSet(): 10 group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) # 特徵矩陣 11 labels = ['A', 'A', 'B', 'B'] # label向量 12 return group, labels 13 14 # 參數:inX:測試數據 dataSet:特徵矩陣 labels:label向量 k:k個近鄰 15 def classify0(inX, dataSet, labels, k): 16 dataSetSize = dataSet.shape[0] #獲取特徵矩陣的行數 17 # 計算歐式距離(兩種方法) 18 # 方法一 19 # diffMat = tile(inX,(dataSetSize,1)) - dataSet 20 # sqDiffMat = diffMat**2 21 # sqDistances = sqDiffMat.sum(axis=1) 22 # distances = sqDistances ** 0.5 23 # 方法二 24 diffMat = inX - dataSet # 矩陣的廣播機制 25 sqDiffMat = diffMat ** 2 26 sqDistances = sqDiffMat.sum(axis=1) 27 distances = sqDiffMat ** 0.5 28 29 # 對計算出的距離進行排序,以獲得最近的點 30 sortedDistIndicies = distances.argsort() 31 classCount={} 32 for i in range(k): 33 voteIlabel = labels[sortedDistIndicies[i]] 34 classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1 # get(value,default) value:返回此鍵的值,default:若是此鍵不存在返回0 35 # 根據字典的值對字典進行排序 36 sortedClassCount = sorted(classCount.items(), key = lambda item:item[1], reverse = True) 37 return sortedClassCount[0][0] 38 39 group, labels=createDataSet() 40 41 result=classify0(np.array([[10,0]]),group,labels,3) 42 print(result)