renzerhyx 2021-12-12 21:54 采纳率: 0%
浏览 19
已结题

KNN算法出不来最好的模型选择

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier

1.获取数据集

iris = load_iris()

2.数据基本处理

2.1数据分割

x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,random_state=22,test_size=0.2)

3.特征工程

3.1实例化一个转换器

transfer = StandardScaler()

3.2调用fit_transform方法

x_train=transfer.fit_transform(x_train)
x_test=transfer.fit_transform(x_test)

4.机器学习(模型训练)

4.1实例化一个估计器

estimator = KNeighborsClassifier(n_neighbors=5)

4.2调用交叉验证网格搜索模型

param_grid={'n_neighbors':[1,3,5,7,9]}
estimator = GridSearchCV(estimator,param_grid=param_grid,cv=10,n_jobs=1)##cv为几折

4.3模型训练

estimator.fit(x_train,y_train)

5.模型评估

5.1输出预测值

y_pre=estimator.predict(x_test)
print('预测值是:\n',y_pre)

5.2输出准确率

ret = estimator.score(x_test,y_test)
print('准确率是:\n',ret)

5.3其他评价指标

print('最好的模型:\n',estimator.best_estimator_)
print('最好的结果:\n',estimator.best_score_)
print('整体模型结果:\n',estimator.cv_results_)
结果显示为:

预测值是:
[0 2 1 1 1 1 1 1 1 0 2 1 2 2 0 2 1 1 1 1 0 2 0 1 1 0 1 1 2 1]
准确率是:
0.7666666666666667
最好的模型:
KNeighborsClassifier()
最好的结果:
0.9666666666666666

最好的模型的括号里没有跳出任何东西!!pycharm里也是这样!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月20日
    • 创建了问题 12月12日

    悬赏问题

    • ¥20 数学建模来解决我这个问题
    • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
    • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
    • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
    • ¥30 NIRfast软件使用指导
    • ¥20 matlab仿真问题,求功率谱密度
    • ¥15 求micropython modbus-RTU 从机的代码或库?
    • ¥15 django5安装失败
    • ¥15 Java与Hbase相关问题
    • ¥15 后缀 crn 游戏文件提取资源