第三章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()}")
结果


浙公网安备 33010602011771号