通過對輸入資料inx和資料集dataset座標距離的計算返回結果
資料集包括group(座標)和labels(分類)
計算inx與group點與點的距離
對距離遞增排序
選取排序後的前k個值對應的label
根據label出現的頻率對inx進行分類
def
classify0
(inx, dataset, labels, k)
: datasetsize = dataset.shape[0]
diffmat = tile(inx,
(datasetsize,1)
)- dataset
sqdiffmat = diffmat**
2 sqdistances = sqdiffmat.
sum(axis=1)
distances = sqdistances**
0.5 sorteddistindicies = distances.argsort(
)
classcount=
for i in
range
(k):
voteilabel = labels[sorteddistindicies[i]
] classcount[voteilabel]
= classcount.get(voteilabel,0)
+1sortedclasscount =
sorted
(classcount.iteritems(
), key=operator.itemgetter(1)
, reverse=
true
)return sortedclasscount[0]
[0]
dataset.shape[0]
dataset為矩陣,shape[高維length,低維length],
如array([
[1. , 1.1],
[1. , 1. ],
[0. , 0. ],
[0. , 0.1]]).shape[0]=4
sqdistances = sqdiffmat.sum(axis=1)
axis=0代表往跨行相加(down),而axis=1代表跨列相加(across)
distances.argsort()
將x中的元素從小到大排列,提取其對應的index(索引)
排序後的x[0]值為排序前最小值的下標
sorted(classcount.iteritems(),key=operator.itemgetter(1), reverse=true)
operator.itemgetter(1)定義了乙個函式,通過該函式作用到物件上獲取下標1的值
《機器學習實戰》學習筆記
很久沒寫過部落格了,一重開就給自己挖了這麼乙個大坑 最近一段時間看了 機器學習實戰 這本書,感覺寫得不錯,認真看了看。關於這本書的書評及購買事宜請移步豆瓣 京東 亞馬遜等 這裡不多說。不過有一點,感覺這本書有個很好的地方是給出了各個演算法的python實現 和講解,要求不高的話可以拿來用了 懶 在這...
《機器學習實戰》學習筆記
目錄 第2章 k 近鄰演算法 第3章 決策樹 第4章 基於概率論的分類方法 樸素貝葉斯 第5章 logistic回歸 第7章 利用adaboost元演算法提高分類效能 第8章 數值型資料 回歸 1.python console匯入knn.py檔案 import knn1.reload的使用方法 fr...
機器學習實戰筆記
在 機器學習實戰 的決策樹的儲存這方面內容學習過程中,進行 除錯時遇到以下兩個錯誤 1 typeerror write argument must be str,not bytes 2 unicodedecodeerror gbk codec can t decode byte 0x80 in po...