演算法實現
演算法應用舉例
k近鄰演算法是機器學習最簡單的演算法之一,也是機器學習的初步,其主要通過大量的資料分析,判斷一組未知資料和各資料的距離,從而對一組未知資料進行相應的歸類。
而所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。所以knn演算法並不是十分完美。
例如下圖,我們有兩類資料,用紅三角和藍方塊表示,對於未知資料綠圓圈,將其劃歸為上述兩類資料的一類就是k近鄰所解決的問題
針對上圖,運用knn思想,對綠圓圈分類:
如果k=3,由於紅色三角形所佔比例為2/3,綠色圓將被賦予紅色三角形那個類;
如果k=5,由於藍色四方形比例為3/5,因此綠色圓被賦予藍色四方形類。
所以在利用knn演算法判斷類別時k的取值很重要。knn演算法主要依據鄰近的k個樣本來進行類別的判斷。然後依據k個樣本**現次數最多的類別作為未知樣本的類別。
1.簡單,易於理解,易於實現,無需估計引數,無需訓練;
2. 適合對稀有事件進行分類;
3.特別適合於多分類問題
該演算法在分類時有個主要的不足是,當樣本不平衡時,如乙個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入乙個新樣本時,該樣本的k個鄰居中大容量類的樣本占多數。 該演算法只計算「最近的」鄰居樣本,某一類的樣本數量很大,那麼或者這類樣本並不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量並不能影響執行結果。
該方法的另乙個不足之處是計算量較大,因為對每乙個待分類的文字都要計算它到全體已知樣本的距離,才能求得它的k個最近鄰點。
可理解性差,無法給出像決策樹那樣的規則
1.對資料進行分類和預處理
2.設定訓練組和測試組
3.設定k值(先隨機設定,在後期演算法完成後多次修改,找到最合適的k值)
4.算出某測試資料和訓練資料之間的距離
5.對距離進行公升序排序
6.選取前k個資料,並進行統計所需要分類的次數,次數多的,即為該資料的所分類別
7.讓該測試資料原類別和演算法所得類別進行比較
8.將所有測試資料依次執行步驟4,5,6,7,並進行正確率次數統計,得到正確率
9.多次修改k值,使得正確率盡量最高化,得到結果的準確性自然會變高
醫療腫瘤良性惡性判斷
《機器學習實戰》 k近鄰分類演算法kNN
knn全稱為k nearest neighbors,是模式識別中比較簡單的一種演算法,可以用於分類和回歸。使用時,輸入的訓練樣本帶有標籤,輸出根據是用於分類還是回歸 分類問題的輸出為 找出k個和要 物件最近鄰的樣本,這k個樣本中,大多數 屬於哪一類即為 物件的分類標籤。回歸問題的輸出為 找出k個和回...
機器學習 k 近鄰 kNN 演算法
一 基本原理 存在乙個樣本資料集合 也稱訓練樣本集 並且樣本集中每個資料都存在標籤。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料 最近鄰 的分類標籤。我們一般只選擇樣本集中前k k通常是不大於20的整數 個最相似的資料,最後選擇k個...
機器學習 k近鄰演算法 kNN
knn演算法通過計算當前測試樣本與離它最近的k個點的距離,進行投票,得到它最有可能的分類結果。首先來看看機器學習演算法的基本流程 由此可見knn演算法的特點 1.k近鄰演算法是非常特殊的,可以認為是沒有模型的演算法。2.為了和其他演算法統一,可以認為訓練資料集就是模型本身。這也是scikit lea...