from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder names=['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class'] data=pd.read_csv(r"C:\Users\Lenovo\Desktop\iris.csv",names=names) 数据集 import matplotlib.pyplot as plt # print(data) X=data.iloc[:,:-1] Y=data.iloc[:,-1] # 将类型转化为三个数字 # encode=LabelEncoder() # Y=encode.fit_transform(Y) print(X) print(Y) x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2)#将数据分类
k=[] error_1=[] for i in range(1,30): k.append(i) knn=KNeighborsClassifier(n_neighbors=i) knn.fit(x_train,y_train) y_predict=knn.predict(x_test) accuracy=knn.score(x_test,y_test) a.append(accuracy) print(f"k值从1-30对应的准确度:{a}") plt.plot(k, a, color='blue', linestyle='dashed', marker='*', markerfacecolor='red', markersize=10) plt.title('Accuracy Rate K Value') # 横纵坐标名称 plt.xlabel('K Value') plt.ylabel('Accuracy') plt.show()