Python最近鄰演算法(KNN)

2021-10-21 08:44:17 字數 1276 閱讀 4252

近朱者赤,近墨者黑。

(學習筆記)

knn:

乙個樣本在特徵空間中,總有k個與之最相似(即特徵空間中最鄰近)的樣本。其中,大多數屬於某一類別,則該樣本也屬於這個類別。

計算步驟:

1.算距離:算出測試樣本到訓練集中每個樣本的距離。(例如:歐氏距離)

2.找鄰居:找出距離最近的k個訓練物件。(k值的選取:交叉驗證)

3.做分類:將這k個物件的主要類別作為測試數類別。(少數服從多數/根據距離的遠近,距離越近權重越大,權重為距離平方的倒數)

演算法流程

1.計算已知類別資料集中的點與當前點之間的距離。

2.按照距離遞增次序排序。

3.選取與當前點距離最小的k個點。

4.確定前k個點所在類別對應的出現頻率。

5.返回前k個點出現頻率最高的類別作為當前點的**分類。

優點:1.簡單,易於理解,易於實現,無需估計引數,無需訓練;

2.適合對稀有事件進行分類;

3.適合於多分類問題。

缺點:1.計算量大,記憶體開銷大,評分慢;

2.可解釋性較差。

行業應用:

客戶流失**

欺詐偵測(更適合於稀有事件的分類問題)

knn演算法解決鳶尾花分類問題

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.neighbors import kneighborsclassifier

iris = load_iris(

)# 鳶尾花資料

data_tr, data_te, label_tr, label_te = train_test_split(iris.data, iris.target, test_size=

0.2)

# 拆分專家樣本集

model = kneighborsclassifier(n_neighbors=5)

# 構建模型

model.fit(data_tr, label_tr)

# 模型訓練

pre = model.predict(data_te)

# 模型**

acc = model.score(data_te, label_te)

# 模型在測試集上的精度

acc

KNN最近鄰演算法python實現

from numpy import import operator def createdataset group array 1.0,1.1 1.0,1.0 0,0 0,0.1 labels a a b b return group,labels def classify0 inx,dataset...

最近鄰規則演算法(KNN)

最近鄰演算法 knn 是乙個基於例項學習的分類演算法。如果乙個例項在特徵空間中的k個最相似 即特徵空間中最近鄰 的例項中的大多數屬於某乙個類別,則該例項也屬於這個類別。所選擇的鄰居都是已經正確分類的例項。演算法步驟 1 把所有分類好的 有標籤label 的資料 例項 作為訓練集 2 選擇好引數k 3...

KNN 最近鄰演算法初探

本文質量不咋地,目的是記錄一下自己的 還有乙個原因是我發現別人的部落格寫的太好了!knn 演算法屬於監督學習的演算法,基本原理是對整個資料整體進行打標籤之後,對乙個新的元素根據其在向量空間中的位置來對其分類。k近鄰演算法是在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,我們就...