文章目录

  • 1.实验目的
  • 2.导入必要模块并读取数据
  • 3.构建模型-参数字典
  • 4.训练
  • 5.打印不同模型、不同参数对应的结果

1.实验目的

(1)运用GridSearchCV比较不同的模型、不同的参数对实验结果的影响。
(2)运用字典存储模型和参数
(3)实验所用数据集为sklearn自带的手写数字数据集

2.导入必要模块并读取数据

from sklearn import datasets
from sklearn import svm    #支持向量机
from sklearn.ensemble import RandomForestClassifier  #随机森林
from sklearn.linear_model import LogisticRegression   #逻辑回归
from sklearn.naive_bayes import GaussianNB      #先验为高斯分布的朴素贝叶斯
from sklearn.naive_bayes import MultinomialNB   #先验为多项式分布的朴素贝叶斯
from sklearn.tree import DecisionTreeClassifier  #决策树digits = datasets.load_digits()    #加载手写题数据集

3.构建模型-参数字典

#构建模型到参数的字典
model_params = {'svm':{'model':svm.SVC(gamma='auto'),'params':{'C':[1,10,20],'kernel':['rbf','linear']}},'random_forest':{'model':RandomForestClassifier(),'params':{'n_estimators':[1,5,10]}},'logistic_regression':{'model':LogisticRegression(),'params':{'C':[1,5,10]}},'naive_bayes_gaussian':{'model':GaussianNB(),'params':{}},'naive_bayes_multinomial':{'model':MultinomialNB(),'params':{}},'decision_tree':{'model':DecisionTreeClassifier(),'params':{'criterion':['gini','entropy']}}
}

4.训练

from sklearn.model_selection import GridSearchCV    #导入网格搜索与交叉验证模型
import pandas as pd
scores = []for model_name, mp in model_params.items():     clf = GridSearchCV(mp['model'],mp['params'],cv=5,return_train_score=False)   #实例化clf.fit(digits.data,digits.target)   #训练scores.append({'model':model_name,'best_score':clf.best_score_,'best_params':clf.best_params_})

5.打印不同模型、不同参数对应的结果

df = pd.DataFrame(scores,columns=['model','best_score','best_params'])   #把结果放入表格
df

机器学习代码实战——网格搜索和交叉验证(GridSearchCV)相关推荐

  1. 机器学习算法------1.10 交叉验证,网格搜索(交叉验证,网格搜索(模型选择与调优)API、鸢尾花案例增加K值调优)

    文章目录 1.10 交叉验证,网格搜索 学习目标 1 什么是交叉验证(cross validation) 1.1 分析 1.2 为什么需要交叉验证 2 什么是网格搜索(Grid Search) 3 交 ...

  2. 【Python-ML】SKlearn库网格搜索和交叉验证

    # -*- coding: utf-8 -*- ''' Created on 2018年1月18日 @author: Jason.F @summary: GridSearch网格搜索:同一模型下组合参 ...

  3. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

  4. 机器学习基础篇(四)——交叉验证

    机器学习基础篇(四)--交叉验证 一.概述 交叉验证是在机器学习建立模型和验证模型参数时常用的办法.顾名思义,交叉验证就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集 ...

  5. 机器学习代码实战——K折交叉验证(K Fold Cross Validation)

    文章目录 1.实验目的 2.导入数据和必要模块 3.比较不同模型预测准确率 3.1.逻辑回归 3.2.决策树 3.3.支持向量机 3.4.随机森林 1.实验目的 使用sklearn库中的鸢尾花数据集, ...

  6. 机器学习 - 随机森林手动10 折交叉验证

    随机森林的 10 折交叉验证 再回到之前的随机森林(希望还没忘记,机器学习算法-随机森林初探(1)) library(randomForest) set.seed(304) rf1000 <- ...

  7. 机械学习房价预测实战(mse 回归 交叉验证)

    题目一:机器学习框架 机器学习的框架有哪些?请写出其构建一个机器学习的流水线 学习的框架 TensorFlow pytorch Paddle Paddle CNTK MXNet mindspore o ...

  8. 机器学习调参——网格搜索调参,随机搜索调参,贝叶斯调参

    from sklearn.datasets import load_boston from sklearn.metrics import mean_squared_error from lightgb ...

  9. 【笔记】【机器学习基础】网格搜索

    通过调参来提升模型的泛化性能 网格搜索:尝试我们关心的参数的所有可能组合 一.简单网格搜索 在 2 个参数上使用 for 循环,对每种参数组合分别训练并评估一个分类器 # 简单的网格搜索实现 from ...

最新文章

  1. JVM基础系列第7讲:JVM 类加载机制
  2. RabbitMQ (三)消息重试
  3. 解决在vscode使用webpack指令显示“因为在此系统中禁止运行脚本“问题
  4. 关于计算机专业的求职信英文怎么说,计算机求职信范文英文3篇
  5. 数据结构实验之查找四:二分查找(递归实现和while循环实现)
  6. Java内存模型与指令重排
  7. 阿里带火的中台,究竟是个啥?
  8. 机器学习实战(六)AdaBoost元算法
  9. 数据库某些要注意的问题(转的,侵权删除)
  10. ubuntu ftp服务器_如何在Ubuntu上安装FTP服务器?
  11. 欧几里得算法及扩展欧几里得算法简单解释
  12. Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
  13. 《第一行代码(第三版)》kotlin开发Android,学习笔记(进行中ing)
  14. HUST算法实践_POJ3233
  15. 软件测试技术什么是分支覆盖,分支覆盖率测试是什么?
  16. 前端获取本地ip地址
  17. iOS闪退日志的收集和解析
  18. mysql dump 拒绝访问_mysqldump访问被拒绝
  19. 软件工程(3)微信抢票实验个人总结
  20. 哇咔咔!用Android手机控制电脑。

热门文章

  1. 如何退出vim编辑器?
  2. web后端http协议使用过程中安全防范及https协议实现原理
  3. (已解决)iOS真机运行 Xcode报错(libpng error: CgBI: unhandled critical chunk)
  4. Winform文件下载之断点续传
  5. 谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义习题参考解答
  6. 系统搜索资源就停止服务器,SQL Server (MSSQLSERVER) 服务启动不了,系统日志显示由于下列服务特定错误而终止: 找不到映像文件中指定的资源名。...
  7. linux用户开机.bashrc,验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本...
  8. java button jbutton_java程序将Button改成JButton,该如何改?
  9. Oracle IO问题解析(一)
  10. redhat 5.4 yum配置