#导入需要用到的库
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
#获取数据源
iris = load_iris()
#切割数据
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,test_size=0.3,random_state=6)
#数据特征标准化处理
transfer = StandardScaler()
train_data = transfer.fit_transform(x_train)
test_data = transfer.transform(x_test)
#调用KNN算法训练数据
# estimator = KNeighborsClassifier(n_neighbors=5)#选择距离最近的5个
# model = estimator.fit(x_train,y_train)
# predict = estimator.predict(x_test)
# # print(predict)
# # print(y_test == predict)
# score = estimator.score(x_test,y_test)
# print(score)
# ***交叉验证加网格搜索
estimator = KNeighborsClassifier()#获取KNN算法训练模型
param_dict = {'n_neighbors':[3,5,7]}
es = GridSearchCV(estimator,param_grid=param_dict,cv=5)
#训练数据
es.fit(x_train,y_train)
#数据的预测
predict = es.predict(x_test)
#预测的准确率
score = es.score(x_test,y_test)
print(score)
#最好的预测模型
print(es.best_estimator_)
#最好的预测分数
print(es.best_score_)
利用KNN算法实现鸢尾花的预测
最新推荐文章于 2024-03-25 09:39:09 发布