第三章KNN算法实现实验拓展

第三章KNN算法实现实验拓展

2.编写代码,实现对iris数据集的KNN算法分类及预测,要求:

(1)数据集划分为测试集占20%;

(2)n_neighbors=5;

(3)评价模型的准确率;

(4)使用模型预测未知种类的鸢尾花。

关键:划分数据

代码:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
iris = datasets.load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target,train_size=0.8, random_state=0)#训练集占样本总数的0.8
knn=KNeighborsClassifier(n_neighbors=5)
knn.fit(x_train,y_train)
print("测试集上的准确率:",knn.score(x_test,y_test))
print("训练集上的准确率",knn.score(x_train,y_train))

3.改进模型,要求:

(1)数据集划分采用10折交叉验证;

(2)寻找最优的n_neighbors值(在5-10之间);

(3)使用新的模型预测未知种类的鸢尾花。

代码

from sklearn.neighbors import KNeighborsClassifier
from sklearn import datasets
from sklearn.model_selection import cross_val_score
iris=datasets.load_iris()
for i in range(5,11):
    knn=KNeighborsClassifier(n_neighbors=i)
    print(f"k={i}时,平均准确率为:{cross_val_score(knn,iris.data,iris.target,cv=10).mean()}")

结果

posted @ 2025-03-14 14:24  Annaprincess  阅读(34)  评论(0)    收藏  举报