from sklearn import datasets # sklearn的資料集
from sklearn.neighbors import kneighborsclassifier # sklearn模組的knn類
import numpy as np
np.random.seed(0)
#設定隨機種子,並保證產生的隨機數是一樣的
iris = datasets.load_iris(
)# 獲取鳶尾花資料集
print
(iris)
iris_x = iris.data # 資料部分
iris_y = iris.target # 類別部分
# 從150條資料中選取140條作為訓練集,10條作為測試集
# permutation接受乙個數作為引數,產生乙個0-149亂序的一維陣列
randomarr = np.random.permutation(
len(iris_x)
)iris_x_train = iris_x[randomarr[:-
10]]# 訓練集資料
iris_y_train = iris_y[randomarr[:-
10]]# 訓練集標籤
# 構建測試集
iris_x_test = iris_x[randomarr[-10
:]]# 測試集資料
iris_y_test = iris_y[randomarr[-10
:]]# 測試集標籤
# 定義乙個knn分類器物件
knn = kneighborsclassifier(
)# 呼叫改物件的訓練方法,主要接受兩個引數:訓練資料集合類別標籤
knn.fit(iris_x_train,iris_y_train)
# 呼叫**方法,主要接收乙個引數:測試資料集
iris_y_predict = knn.predict(iris_x_test)
# 計算各個測試樣本**的概率值
# 這裡沒有使用概率值,但是在實際工作中,可能會參考概率值進行最後結果的篩選,而不是直接使用給出的**標籤
probility = knn.predict_proba(iris_x_test)
# 計算與最後乙個測試樣本距離最近的5個點,返回的是這些樣本的序號組成的陣列
neighbirpoint = knn.kneighbors(
[iris_x_test[-1
]],5
)# 呼叫物件的打分方法,計算出準確率
score = knn.score(iris_x_test,iris_y_test,sample_weight=
none
)# 輸出測試結果
print
('iris_y_predict='
)print
(iris_y_predict)
# 輸出原始測試資料集的正確標籤,以便方便對比
print
('iris_y_test'
)print
(iris_y_test)
# 輸出準確率
print
('準確率:'
.format
(score)
)
knn演算法 鳶尾花
knn分類演算法實現鳶尾花 對鳶尾花利用knn演算法進行分類,利用python的sklean庫極大方便了python的使用,減少了大量 的書寫。knn演算法的 是通過計算歐氏距離來確定 鳶尾花的結果,遍歷所有樣本集,計算待分類樣本與每個樣本的距離,計算並儲存後排序,尋找k個近鄰,最後輸出最小結果即為...
knn 鳶尾花例子
1.獲取資料集 2.資料基本處理 3.特徵工程 4.機器學習 模型訓練 5.模型評估 from sklearn.datasets import load iris from sklearn.model selection import train test split from sklearn.pr...
鳶尾花KNN演算法的重構
一 作業題目 鳶尾花的knn演算法重構 knn演算法又稱為k近鄰演算法,k的含義是指考慮訓練集中與新資料點最近的任意k個鄰居 比如說,距離新資料點最近的3個或5個鄰居 而不是只考慮距離新資料點最近的那乙個。然後,我們可以利用這些鄰居中數量最多的類分別作出 二 演算法設計 1 knn演算法的原理 如果...