機器學習之k 近鄰演算法

2021-09-01 15:09:46 字數 2357 閱讀 2832

k nearest neighbor演算法又叫knn演算法,這個演算法是機器學習裡面乙個比較經典的演算法, 總體來說knn演算法是相對比較容易理解的演算法

定義:如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別

2️⃣、相似度:就是指兩個點之間的距離

​ ①,歐氏距離

d is

tanc

e=∑i

n(ai

−bi)

2distance = \sqrt

distan

ce=i

∑n​(

ai​−

bi​)

2​3️⃣、電影型別分析

①、目標值:電影型別,特徵值:打鬥鏡頭,接吻鏡頭

k=1,愛情片[愛情片]選取乙個樣本

​ k=2,愛情片[愛情片,愛情片]選取兩個樣本

​ k=3,愛情片[愛情片,愛情片,愛情片]選取三個樣本

​ k=4,愛情片[愛情片,愛情片,愛情片,動作片] 。。。。。。

​ k=6,[愛情片,愛情片,愛情片,動作片,動作片,動作片] 。。。。。。。

注:對於這個樣本來說

5️⃣、鳶尾花資料

? 案例:鳶尾花種類****實現

# 獲取資料集,載入鳶尾花資料集

from sklearn.datasets import load_iris

# 分割資料集

from sklearn.model_selection import train_test_split

# 特徵工程:標準化

from sklearn.preprocessing import standardscaler

# k-近鄰演算法api

from sklearn.neighbors import kneighborsclassifier

defknn_demo()

:'''knn演算法對鳶尾花資料集分類演示'''

# ? 獲取資料集

iris = load_iris(

)# ? 分割資料集,引數(特徵值,目標值,劃分比例)

x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=

0.3, random_state=8)

# ? 特徵工程:標準化

# ✨ 例項化乙個轉換器類

transfer = standardscaler(

)# ? 傳入資料呼叫fit_transform進行轉換

x_train = transfer.fit_transform(x_train)

# ? 因為來自於同乙個資料集,所以用上乙個的標註差就行,因為均值,標準差是一樣的。

x_test = transfer.transform(x_test)

# ? 模型訓練和評估

# ? 例項化乙個估計器

estimator = kneighborsclassifier(

)# ? 傳入訓練資料集,進行機器學習

estimator.fit(x_train, y_train)

# ? 模型評估

# ? 方法1:比較真實值和**值, y_predict**值

y_predict = estimator.predict(x_test)

print

('**值為:\n'

, y_predict)

print

('比較真實值與**值結果為:\n'

, y_predict == y_test)

# ? 方法2:直接計算模型準確率

print

('模型準確率為:\n'

, estimator.score(x_test, y_test)

)return

none

# ✋ 呼叫函式輸出結果。

knn_demo(

)

缺點:

使用場景:小資料場景,幾千~幾萬樣本,具體場景具體業務去測試

機器學習實戰之K 近鄰演算法

k 近鄰演算法工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的資料進行比較,然後演算法提取樣本集中特徵最相似資料 最鄰近 的分類標籤。一般來說,我們只選取樣本資料集...

機器學習(一)之k近鄰演算法

1.knn k nearest neighbor 工作原理 存在乙個樣本資料集 訓練樣本集 且樣本集中每個資料都存在標籤,即我們知道樣本集中每個資料與所屬分類的對應關係。輸入沒有標籤的新資料後將新資料的每個特徵和樣本集裡的資料對應的特徵作比較,然後演算法提取樣本集中特徵最相似資料的分類標籤 最近 一...

機器學習實戰之 k 近鄰演算法

k 近鄰演算法 knn 採用測量不同特徵值之間的距離方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定。缺點 計算複雜度高 空間複雜度高。適用資料範圍 數值型和標稱型。描述 存在乙個樣本資料集合,樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸人沒有標籤的新資料...