2. 編寫代碼,實現(xiàn)對iris數(shù)據(jù)集的KNN算法分類及預(yù)測
要求:
(1)數(shù)據(jù)集劃分為測試集占20%;
(2)n_neighbors=5;
(3)評價模型的準(zhǔn)確率;
(4)使用模型預(yù)測未知種類的鳶尾花。
(待預(yù)測數(shù)據(jù):X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]])
iris數(shù)據(jù)集有150組,每組4個數(shù)據(jù)。
第一步:引入所需庫
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
第二步:劃分測試集占20%
x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)
test_size為0-1的數(shù)代表占百分之幾
random_state為零隨機數(shù)確定,每次結(jié)果都相同
第三步:n_neighbors=5
KNeighborsClassifier(n_neighbors=5)
第四步:評價模型的準(zhǔn)確率
KNN.fit(x_train, y_train)
# 訓(xùn)練集準(zhǔn)確率
train_score = KNN.score(x_train, y_train)
# 測試集準(zhǔn)確率
test_score = KNN.score(x_test, y_test)
第五步:使用模型預(yù)測未知種類的鳶尾花
#待預(yù)測數(shù)據(jù):X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]]
X1 = np.array([[1.5, 3, 5.8, 2.2], [6.2, 2.9, 4.3, 1.3]])
# 進行預(yù)測
prediction = KNN.predict(X1)
# 種類名稱
k = iris.get("target_names")[prediction]
完整代碼:文章來源:http://www.zghlxwxcb.cn/news/detail-479674.html
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
if __name__ == '__main__':
iris = load_iris()
data = iris.get("data")
target = iris.get("target")
x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=0)
KNN = KNeighborsClassifier(n_neighbors=5)
KNN.fit(x_train, y_train)
train_score = KNN.score(x_train, y_train)
test_score = KNN.score(x_test, y_test)
print("模型的準(zhǔn)確率:", test_score)
X1 = np.array([[1.5, 3, 5.8, 2.2], [6.2, 2.9, 4.3, 1.3]])
prediction = KNN.predict(X1)
k = iris.get("target_names")[prediction]
print("第一朵花的種類為:", k[0])
print("第二朵花的種類為:", k[1])
結(jié)果:文章來源地址http://www.zghlxwxcb.cn/news/detail-479674.html
到了這里,關(guān)于機器學(xué)習(xí)之Python使用KNN算法對鳶尾花進行分類的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!