最近鄰規則演算法(KNN)

2021-07-30 21:50:24 字數 1130 閱讀 7995

最近鄰演算法(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....