最近鄰演算法(knn)是乙個基於例項學習的分類演算法。
如果乙個例項在特徵空間中的k個最相似(即特徵空間中最近鄰)的例項中的大多數屬於某乙個類別,則該例項也屬於這個類別。所選擇的鄰居都是已經正確分類的例項。
演算法步驟:
1、把所有分類好的(有標籤label)的資料(例項)作為訓練集;
2、選擇好引數k;
3、計算未知例項與所有已知例項的距離;
4、選擇最近k個已知例項;
5、根據少數服從多數的原則,把未知例項歸類為k個最近鄰樣本中最多數的類別;
用於逼近連續值的目標函式:
優點:簡單,易於實現;
通過對k的選擇可具備丟雜訊資料的健壯性
缺點: 需要大量空間儲存所有已知例項
演算法複雜度高(需要比較所有已知例項與要分類的例項)
當其樣本分佈不平衡時,比如其中一類樣本過大(例項數量過多)佔主導的時候,新的未知例項容易被歸類為這個主導樣本,因為這類樣本例項的數量過大,但這個新的未知例項實際並木接近目標樣本
改進:根據距離加上權重(例:1/d)
arg max f(x): 當f(x)取最大值時,x的取值
附:歐式距離(euclidean distance):
其他距離衡量:余弦值(cos), 相關度 (correlation), 曼哈頓距離 (manhattan distance)
基於例項的學習:只是簡單地把訓練樣例儲存起來,從這些例項中泛化的工作被推遲到必須分類新的例項時,每當學習器遇到乙個新的查詢例項,它分析這個新例項與以前儲存的例項的關係,並據此吧乙個目標函式值賦給新例項。
4 2 最近鄰規則分類演算法(KNN 應用
1 資料集介紹 虹膜 150個例項 萼片長度,萼片寬度,花瓣長度,花瓣寬度 sepal length,sepal width,petal length and petal width 類別 iris setosa,iris versicolor,iris virginica.利用python的機器學...
KNN 最近鄰演算法初探
本文質量不咋地,目的是記錄一下自己的 還有乙個原因是我發現別人的部落格寫的太好了!knn 演算法屬於監督學習的演算法,基本原理是對整個資料整體進行打標籤之後,對乙個新的元素根據其在向量空間中的位置來對其分類。k近鄰演算法是在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,我們就...
Python最近鄰演算法(KNN)
近朱者赤,近墨者黑。學習筆記 knn 乙個樣本在特徵空間中,總有k個與之最相似 即特徵空間中最鄰近 的樣本。其中,大多數屬於某一類別,則該樣本也屬於這個類別。計算步驟 1.算距離 算出測試樣本到訓練集中每個樣本的距離。例如 歐氏距離 2.找鄰居 找出距離最近的k個訓練物件。k值的選取 交叉驗證 3....