流氓是怎样炼成的python进⾏KNN算法分析实战(鸢尾花数据集)KNN算法分析实战(鸢尾花数据集) ⽬录
,废话不多说,先看看代码实验结果
小曾 军营民谣
河北大学成教学院
提⽰:以下是本篇⽂章正⽂内容,下⾯案例可供参考
⼀、导⼊需要的包
要是报错的话可以在pycharm安装包,要是不⾏就在命令窗⼝输⼊pip install +包名
import matplotlib.pyplot as plt
from sklearn import neighbors
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn import model_selection
from sklearn import metrics
⼆、
1.导⼊数据
导⼊数据并查看前5⾏代码
df1 = pd.read_csv(r'D:\python\iris.csv')
一位父亲给梦鸽的信print(df1.head())#输出前五⾏
predictors = lumns[:-1]
vp5
代码如下:
x_train,x_test,y_train,y_test=ain_test_split(
df1[predictors],df1.Species,
test_size=0.5,
random_state = 1234
)
il(np.log2(df1.shape[0])))
爱在钢琴上
#设置待测试的不同K值
K = np.arange(il(np.log2(df1.shape[0])))
print(np.arange(il(np.log2(df1.shape[0]))))
#设置空列表,⽤于储存平均准确率
accuracy = []
4. ⼗重交叉验证K值
使⽤⼗重交叉验证K值,并做出最适合K值的折线图
#使⽤⼗重交叉验证的⽅法
for k in K:
cv_result = ss_val_score\
(neighbors.KNeighborsClassifier(n_neighbors=int(k),
weights='distance'),
x_train, y_train, cv=10, scoring='accuracy')
accuracy.append(an())
#从K个平均准确率中挑选出最⼤值做对应的⽬标
arg_max = np.array(accuracy).argmax()
#中⽂负号正常显⽰
#绘制不同k值与准确率之间的折线图
plt.plot(K,accuracy)
plt.scatter(K,accuracy)
<(K[arg_max],accuracy[arg_max],'最佳K值为%s'%int(K[arg_max])) plt.show()
代⼊K值,进⾏模型拟合
#重新构建模型,并将最佳邻近数个数设置为7
knn_class = neighbors.KNeighborsClassifier(n_neighbors=7,weights='distance') #模型拟合
knn_class.fit(x_train,y_train)
#模型在测试集上的预测
predict = knn_class.predict(x_test)
6.数据可视化输出