sklearn使用KNN算法對鳶尾花進行預測

導入數據

from sklearn.datasets import load_iris

鳶尾花這個數據中只有150個樣本,所以對訓練數據的維度不做過多處理。
這個案例比較簡單,整體代碼如下:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 讀取數據
iris = load_iris()

# 進行數據分割,測試集大小設爲0.1
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# 標準化處理
std = StandardScaler()
x_train = std.fit_transform(x_train)
x_test = std.transform(x_test)

# 進行算法流程,
knn = KNeighborsClassifier(n_neighbors=3)

#訓練函數,返回的是對象本身
knn.fit(x_train, y_train)

# 測試得出預測結果
y_predict = knn.predict(x_test)

# 得出準確率
print('準確率:', knn.score(x_test, y_test))

k值取多大?有什麼影響?
k值取很小:容易受異常點影響
k值取很大:容易受最近數據太多導致比例變化

本案例中樣本數量不是很多,我對k值進行了變換,得出的準確率差別不是很大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章