sklearn.model_selection中的GridSearchCV(自适应模型库)_sklearn.model_selection gridsearchcv-程序员宅基地

技术标签: 机器学习  sklearn  GridSearchCV  

今天想要简单的应用一下,svr模型做一下支持向量机的回归,然后突然发现了这个宝贝函数。

官网文档如下:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None,
 fit_params=None, n_jobs=None, iid=’warn’, refit=True, cv=’warn’, 
verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’, return_train_score=’warn’)

(1)estimator:sklearn 里面封装的模型

(2)param_grid:值为字典或者列表,字典里面的键代表estimator模型中的可以设置的参数,值是GridSearchCV要去遍历优化的具体值。

比如具体的GridSearchCV 函数结构如下:

svr = GridSearchCV(SVR(), param_grid={"kernel": ("linear", 'rbf'),\
      "C": np.logspace(-3, 3, 7), "gamma": np.logspace(-3, 3, 7)})

第一个参数是建立的SVR模型(estimator);

第二个参数是SVR()模型中,允许的参数。

kernel(核函数):linear(线性核)、rbf(径向基核)

C(惩罚系数):设置范围为从1.e-03到1.e+03的等比数列,共7个数

gamma(核系数):同上

SVR()详细参数可见:

https://blog.csdn.net/qq_24852439/article/details/85305317

(3) scoring:模型评价方法,也是按照上面参数的方法,给定一个列表或者字典形式。评价方法可以参照 sklearn里面的metric

(4) fit_params:在0.21里面被抛弃了,不介绍了

(5)n_jobs:并行数。默认值为:1。-1的时候运行你所有的CPU核

(6)就先到这把....

       然后就是把训练集扔进去。

svr.fit(x_train, y_train) #训练
y_pred = svr.predict(x_test)   #测试集测试
sigma = metrics.mean_squared_error(y_test, y_pred) #计算均方差
print(sigma)
print('the best patams is{}'.format(svr.best_params_))

然后就会看见这样的效果,

第一个就是 均方差(效果不好,是我数据集本身的原因)

第二个就是在我设定所有SVR参数中,使得模型训练效果最好的参数的输出。

这样感觉省略了很多调参的过程,直接把最好的都给你了,你也不用费劲的去写了。

原来做SVM的时候,为了想要改变kernel,还要写个list,每次用循环传进去,比如下面这样,然后用一个指标去评价不同的kernel的好坏。

kernel_class = ['linear', 'poly', 'rbf', 'sigmoid']

def train_SVC(x_train, x_test, y_train, y_test,kernel_class):
    model = SVC(kernel = kernel_class) #建立模型,设置相应模型参数
    model.fit(x_train, y_train)  #调用fit训练
    y_pred = model.predict(x_test)   #测试集测试 
    print(y_pred)
    acc = metrics.accuracy_score(y_test, y_pred) #计算模型准确率
    return acc 

for i in kernel_class: 
        print('class:{}'.format(i))
        acc = train_SVC(x_train, x_test, y_train, y_test,i)#存精确度
        print(acc)

 

参考:http://www.cnblogs.com/zinyy/p/9535069.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/foneone/article/details/89985045

智能推荐

HQL查询详细语法讲解_hqlun-程序员宅基地

文章浏览阅读616次。HQL查询HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象_hqlun

第10章 指针(五) 使用地址-------指针的引用-程序员宅基地

文章浏览阅读43次。提纲:1、间接访问变量的指针运算符*2、野指针和空指针3、变量的指针表示:a、用指针引用普通变量b、用指针引用数组及其元素c、函数间传递指针:指针参数和返回值4、指针变量的引用和定义的区别5、存储指针的书写问题6、&*和*&7、变量用指针表示后 ,进行+ - * / 运算时,有必要加( )...

java通过opencv解析二维码(微信开源解码工具)_opencv java 二维码识别-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏7次。微信开源了其二维码的解码功能,并贡献给 OpenCV 社区。其开源的 wechat_qrcode 项目被收录到 OpenCV contrib 项目中。从 OpenCV 4.5.2 版本开始,就可以直接使用。以往java解析二维码都是使用google.zxing,但是zxing解析二维码的成功率比较低,很多美化或者个性化的二维码无法解析。以上依赖用于windows系统 如果要发布到liunx系统把windows-x86_64改成liunx-x86_64。_opencv java 二维码识别

nodejs安装与卸载(高版本降为低版本)_nodejs卸载-程序员宅基地

文章浏览阅读1.2w次,点赞14次,收藏81次。初到公司发现电脑上面已经安装nodejs,但是版本是最新版本。但是问题来了,好像是不太支持vue3,所以查了一些资料,具体的也不是很清楚,反正就是nodejs的版本不能太高最好保持在16以下。好吧,那就重新卸载再来安装nodejs吧。_nodejs卸载

IPU(Image Processing Unit )-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏11次。Chapter 38 Image Processing Unit (IPU)38.1 概述IPU计划成为应用程序处理器中的视频和图形子系统的一部分。IPU的目标是为从图像传感器和/或到显示设备的数据流提供全面支持。这项支助包括这些活动的所有方面:连接到相关设备-摄像机,显示器,图形加速器,电视编码器和解码器。相关图像处理与操作:传感器图像信号处理、显示处理、图像转换等。..._image processing unit

小程序 | 基于WAMP的新闻网小程序开发(体验全栈式开发微信小程序)_微信小程序能不能用wamp-程序员宅基地

文章浏览阅读2k次。之前学习微信小程序开发,主要是基于JS、WXML、WXSS的前端开发,对于后端技术不精的我也是使用了微信开发者工具中的云开发功能,但是今天突发奇想,特别想体验一下全栈式开发微信小程序,学习了一下基于WAMP的新闻网小程序开发。文章目录一、前端(实现小程序界面)1.1 index页面1.2 my页面二、后端(搭建本地服务器)2.1 安装phpStudy工具连接数据库2.2 使用Navicat数据库工具连接数据库2.3 配置phpStudy搭建本地服务器2.4 进一步配置.php文件实现核心功能三、连接前._微信小程序能不能用wamp

随便推点

Class.getResourceAsStream()与ClassLoader.getResourceAsStream()获取资源时的路径说明-程序员宅基地

文章浏览阅读45次。Class.getResourceAsStream(): com.xusweeter.iot.ws.vodafone.config.VodafoneServiceConfig.class.getResourceAsStream(VDF_CERT_NAME); 通过以上代码加载资源时:默认加载com.xusweeter.iot.ws.vodafone.config包下名称为VDF_CERT_NAME..._thread.currentthread().getcontextclassloader().getresourceasstream(certname)

SpringCloud集成Nacos作为配置中心_to enable urls as dynamic configuration sources, d-程序员宅基地

文章浏览阅读471次。我们在搭建自己的微服务的时候,可以选择使用eureka作为我们微服务的注册中心,使用nacos作为微服务的配置中心,接下来我们可以看下具体的搭建过程:(以下过程只展示Spring Cloud + Nacos的搭建过程,至于集成eureka的可以另行查找具体对接流程)_to enable urls as dynamic configuration sources, define system property arch

51nod1770: 数数字(模拟)_hiho1770 单调数-程序员宅基地

文章浏览阅读231次。1770 数数字基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题 收藏 关注统计一下 aaa ⋯ aaan个a × b 的结果里面有多少个数字d,a,b,d均为一位数。样例解释:3333333333*3=9999999999,里面有10个9。_hiho1770 单调数

Kail Linux使用aircrack-ng破解WiFi_aircrack-ng握手包-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏13次。Kail Linux使用aircrack-ng破解WiFi前言: 闲着无事,就自己开了个热点打算自己破解以练习kali Linux 和 Linux 的使用 准备:将准备好的无驱无线网卡接入kali虚拟机1.查看无线网卡是否接入成功 命令: iwconfig2.启动无线网卡监听模式 命令:airmon-ng start wlan..._aircrack-ng握手包

docker_73720353-63a5-41bf-b66e-78d8e49153b8-程序员宅基地

文章浏览阅读4.7k次。Docker是一个基于go语言遵从apache2.0协议开源的LXC的高级容器引擎(底层技术是Linux Container,docker只是管理底层的工具),并通过namespace、cgroup等来提供容器的资源隔离与安全保障等。Docker 最早采用 LXC 技术 (LXC 是 Linux 原生支持的容器技术,是一种内核虚拟化技术,可以提供轻量级的虚拟化,LXC将Linux进程沙盒化,使进程之间相互隔离 ),可以说docker 就是基于 LXC 发展起来的。_73720353-63a5-41bf-b66e-78d8e49153b8

【00】机器学习之旅-启程_机器学习 just in time learning-程序员宅基地

文章浏览阅读593次。【00】机器学习之旅启程 Machine Learning Roadmap【开始我的机器学习之路,感兴趣,就慢慢学,就在CSDN建立自己学习旅程】指南:Learning guideStreamlined guideinformation filterScope:Focus your scope on classification and regression t_机器学习 just in time learning