利用KNN對鳶尾花資料進行分類

2021-09-21 18:34:54 字數 1856 閱讀 5961

**knn(k-nearest neighbor)工作原理:存在乙個樣本資料集合,也稱為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類對應的關係。輸入沒有標籤的資料後,將新資料中的每個特徵與樣本集中資料對應的特徵進行比較,提取出樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k近鄰演算法中k的出處,通常k是不大於20的整數。最後選擇k個最相似資料**現次數最多的分類作為新資料的分類。

說明:knn沒有顯示的訓練過程,它是「懶惰學習」的代表,它在訓練階段只是把資料儲存下來,訓練時間開銷為0,等收到測試樣本後進行處理。**

直接附上**:

from sklearn.datasets import load_iris

iris = load_iris()# 查驗資料規模。

# 從sklearn.cross_validation裡選擇匯入train_test_split用於資料分割。

x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.25, random_state=33)

# 從使用train_test_split,利用隨機種子random_state取樣25%的資料作為測試集。

from sklearn.preprocessing import standardscaler

# 從sklearn.preprocessing裡選擇匯入資料標準化模組。

from sklearn.neighbors import kneighborsclassifier

# 從sklearn.neighbors裡選擇匯入kneighborsclassifier,即k近鄰分類器。

# 對訓練和測試的特徵資料進行標準化。

ss = standardscaler()

x_train = ss.fit_transform(x_train)

x_test = ss.transform(x_test)

# 使用k近鄰分類器對測試資料進行類別**,**結果儲存在變數y_predict中。

knc = kneighborsclassifier()

knc.fit(x_train, y_train)

y_predict = knc.predict(x_test)

# 使用模型自帶的評估函式進行準確性測評。

print ('the accuracy of k-nearest neighbor classifier is:')

print (knc.score(x_test, y_test))

# 依然使用sklearn.metrics裡面的classification_report模組對**結果做更加詳細的分析。

from sklearn.metrics import classification_report

print (classification_report(y_test, y_predict, target_names=iris.target_names))

結果如圖:

KNN演算法進行鳶尾花分類

import numpy as np import matplotlib.pylab as pyb matplotlib inline from sklearn.neighbors import kneighborsclassifier from sklearn import datasets fr...

Python Iris鳶尾花資料Knn分類

首先匯入sklearn庫中自帶iris資料 三類 0 山鳶尾花 1 變色鳶尾花 2 維吉尼亞鳶尾花 訓練集112個,測試集38個。匯入iris資料,x資料,y標籤 iris datasets.load iris x iris.data y iris.target x train,x test,y t...

使用KNN對鳶尾花資料集進行分類處理

author tao contact 1281538933 qq.com file knn.py time 2020 12 21 software vscode from sklearn.datasets import load iris 匯入資料集iris import matplotlib.py...