統計學習方法學習筆記2 KNN

2021-09-23 15:23:24 字數 2239 閱讀 7968

# 自程式設計實現 knn 演算法

def knn_self(data, dataset, label, k):

leth, _ = dataset.shape

dist_key = {}

for i in range(leth):

tmp = np.sqrt(np.sum(np.square(data - dataset[i])))

dist_key[str(tmp)] = label[i][0]

dist_key = sorted(dist_key.items(),key=operator.itemgetter(0),reverse=false) # 對距離進行排序

1.knn演算法的結構複雜度主要體現與k值的選擇:

k值越小,模型就越複雜,從而容易產生過擬合;

k值越大模型越簡單,但是學習的近似誤差也就越大。

2.knn演算法的不足:

假如某些類的樣本容量很大,而其他類的樣本容量很小,即已知樣本數量不均勻時,有可能當輸入乙個和樣本容量小的同型別的資料時,該樣本的k個鄰居中大容量類的樣本占多數,就會造成誤分類;對此問題的解決辦法是:加權平均於距離。

統計學習方法筆記 KNN

k近鄰法 k nearest neighbor,k nn 這裡只討論基於knn的分類問題,1968年由cover和hart提出,屬於判別模型 k近鄰法不具有顯式的學習過程,演算法比較簡單,每次分類都是根據訓練集中k個最近鄰,通過多數表決的方式進行 所以模型需要保留所有訓練集資料,而象感知機這樣的模型...

統計學習方法筆記 KNN

k近鄰法 k nearest neighbor,k nn 這裡只討論基於knn的分類問題,1968年由cover和hart提出,屬於判別模型 k近鄰法不具有顯式的學習過程,演算法比較簡單,每次分類都是根據訓練集中k個最近鄰,通過多數表決的方式進行 所以模型需要保留所有訓練集資料,而象感知機這樣的模型...

《統計學習方法》學習筆記

最近把李航的 統計學習方法 看完了,感覺很不錯,從概論到各個統計方法,由易到難層層推進,每個方法都有詳盡的數學公式推倒,感覺很適合有一定數學功底的人作為機器學習入門來看。可惜本人自幼愚鈍,資質欠佳,以前學的概率論與數理統計的知識都忘得差不多了,看得雲裡霧裡的,前面還好,越到後面越看不明白,遇到不懂的...