文章目录
结果
代码
#库导入
import numpy as np
import csv
import os
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
#数据导入 && 规范化
data_folder="D:/Python/Jupyter/python数据挖掘实验/实验2-k近邻"
data_filename=os.path.join(data_folder,"data_folder","ionosphere.data")
X=np.zeros((351,34),dtype='float')
Y=np.zeros((351,34),dtype='bool')
with open(data_filename,'r') as input_file:
reader=csv.reader(input_file)
for i,row in enumerate(reader):
data=[float(datum) for datum in row[:-1]]
X[i]=data
Y[i]=(row[-1]=='g')
#数据集分割 && 模型训练
X_train, X_test, Y_train, Y_test=train_test_split(X, Y, random_state=14)
estimator=KNeighborsClassifier()
estimator.fit(X_train,Y_train)
#模型测试
Y_predicted=estimator.predict(X_test)
accuracy=np.mean(Y_test==Y_predicted)*100
print("The accuracy is {0:.1f}".format(accuracy))
#模型测试 测试集分割测试
scores=cross_val_score(estimator, X, Y, scoring="accuracy")
accuracy=np.mean(scores)*100
print("The accuracy is {0:.1f}".format(accuracy))