# 自程式設計實現 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個最近鄰,通過多數表決的方式進行 所以模型需要保留所有訓練集資料,而象感知機這樣的模型...
《統計學習方法》學習筆記
最近把李航的 統計學習方法 看完了,感覺很不錯,從概論到各個統計方法,由易到難層層推進,每個方法都有詳盡的數學公式推倒,感覺很適合有一定數學功底的人作為機器學習入門來看。可惜本人自幼愚鈍,資質欠佳,以前學的概率論與數理統計的知識都忘得差不多了,看得雲裡霧裡的,前面還好,越到後面越看不明白,遇到不懂的...