首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >XGBoost的GridSearchCV评分

XGBoost的GridSearchCV评分
EN

Stack Overflow用户
提问于 2018-05-11 16:46:16
回答 2查看 5.1K关注 0票数 0

我目前正在尝试第一次使用XGBoost分析数据。我想使用GridsearchCV找到最佳参数。我想最小化均方根误差,为此,我使用"rmse“作为eval_metric。然而,网格搜索中的评分没有这样的指标。我在这个网站上发现"neg_mean_squared_error“做了同样的事情,但我发现这给我的结果与RMSE不同。当我计算"neg_mean_squared_error“的绝对值的根时,我得到的值约为8.9,而另一个函数给出的均方根约为4.4。我不知道哪里出了问题,或者我如何让这两个函数同意/给出相同的值?

由于这个问题,我得到了错误的值"best_params_“,它给了我一个比我最初开始调优的一些值更高的均方根。

谁能解释一下如何在网格搜索中获得RMSE的分数,或者为什么我的代码会给出不同的值?

提前谢谢。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def modelfit(alg, trainx, trainy, useTrainCV=True, cv_folds=10, early_stopping_rounds=50):
    if useTrainCV:
        xgb_param = alg.get_xgb_params()
        xgtrain = xgb.DMatrix(trainx, label=trainy)
        cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], nfold=cv_folds,
                          metrics='rmse', early_stopping_rounds=early_stopping_rounds)
        alg.set_params(n_estimators=cvresult.shape[0])

    # Fit the algorithm on the data
    alg.fit(trainx, trainy, eval_metric='rmse')

    # Predict training set:
    dtrain_predictions = alg.predict(trainx)
    # dtrain_predprob = alg.predict_proba(trainy)[:, 1]
    print(dtrain_predictions)
    print(np.sqrt(mean_squared_error(trainy, dtrain_predictions)))

    # Print model report:
    print("\nModel Report")
    print("RMSE : %.4g" % np.sqrt(metrics.mean_squared_error(trainy, dtrain_predictions)))

 param_test2 = {
 'max_depth':[6,7,8],
 'min_child_weight':[2,3,4]
}

grid2 = GridSearchCV(estimator = xgb.XGBRegressor( learning_rate =0.1, n_estimators=2000, max_depth=5,
 min_child_weight=2, gamma=0, subsample=0.8, colsample_bytree=0.8,
 objective= 'reg:linear', nthread=4, scale_pos_weight=1, random_state=4),
 param_grid = param_test2, scoring='neg_mean_squared_error', n_jobs=4,iid=False, cv=10, verbose=20)
grid2.fit(X_train,y_train)
# Mean cross-validated score of the best_estimator
print(grid2.best_params_, np.sqrt(np.abs(grid2.best_score_))), print(np.sqrt(np.abs(grid2.score(X_train, y_train))))
modelfit(grid2.best_estimator_, X_train, y_train)
print(np.sqrt(np.abs(grid2.score(X_train, y_train))))
EN

回答 2

Stack Overflow用户

发布于 2018-05-11 17:39:36

GridSearchCV中,对评分参数进行了转换,以便较高的值总是比较低的值更好。在您的示例中,neg_mean_squared_error只是RMSE的否定版本。您不应该将neg_mean_squared_error解释为RMSE,相反,在交叉验证中,您应该比较neg_mean_squared_error的值,其中值越高越好。

model_evaluation文档的评分参数部分中提到了此行为。

Scikit-Learn Scoring Parameter Documentation

票数 0
EN

Stack Overflow用户

发布于 2022-02-14 12:46:00

这是因为XGBoostRegressor.score返回the coefficient of determination of the prediction,而不是RMSE。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50296817

复制
相关文章
rails -help
rails new APP_PATH [选项] //APP_PATH项目名称
不知雨
2018/11/13
2.6K0
Conditional GAN
GAN的出现为数据生成提供了一种新的思路,以图像生成为例,在GAN框架中,不再需要其他复杂的操作,如Markov Chain等,只需要对定义好的网络进行backpropagation即可完成生成网络的训练。在原始的GAN框架中,包括了两个部分,分别为生成网络(Generator)G和判别网络(Discriminator) ,其中生成网络(Generator) 用于生成图片,判别网络(Discriminator) 用于判别一张图片是否是真实的。通过不断提高生成网络 的生成质量,最终“骗”过判别网络 ,在此过程中,判别网络 也在不断提高自身的判别能力,通过如此的一个动态的“博弈”过程,最终,训练好的生成网络 便可以用于生成“以假乱真”的图片。
felixzhao
2022/05/12
3440
Conditional GAN
Rails 从入门到完全放弃
这是一篇关于Rails的开发经历的文章,旨在将Rails中遇到的各种问题分享给还未接触Rails或是已经上路的朋友。虽说做Rails的开发时间不长,刚好一年多。但是,在这一年的时间中,该使用的技术架构,Ruby-China 推荐的Gem包,都尝试过使用过了,也为业务开发了一些Gem包。谈不上精通Rails,如果把Rails作者定为最高等级,他是F1赛车手,我该是个跑出租的老司机。
零式的天空
2022/03/22
2.2K0
DHH:2017年Rails 框架还值得学习吗?
这是一篇意译文, 翻译自 DHH( Rails 创始人 )在 Quora 上的 Rails 问题回复. 近期, 看得出社区里一些人对 Rails 发展失了一些信心, 我想为大家找回一些信心. 译者: 技术达人李亚飞, 现任百分之八十公司 CTO, 团队有 7 位全栈 Rails 工程师. 2004 年, 我们选择 Rails, 那么今年, 我们也会因为同样的原因选择 Rails. 越是事情变化, 他们越是保持不变. 这些年 JavaScript 世界有着大量的进步, 但我们也看到了倒退的世界, 而这些正在
企鹅号小编
2018/01/29
2K0
Spring @Conditional相关
最本质的需求是根据条件加载Bean。 Spring4 提供了实现方案 — @Conditional ,可以通过条件判断创建 Bean 。
干货满满张哈希
2021/04/12
3430
SpringFramework之@Conditional
    Conditional注解很重要,是Springboot自动化配置的基础,它会根据指向的condition实现类,在SpringIOC的时候调用其matches方法,如果返回true则这个bean注册到beanFactory中。
克虏伯
2019/06/21
5400
SpringFramework之@Conditional
C - Rails
C - Rails C - Rails #include<cstdio> #include<stack> #include<cstring> using namespace std; int a[1010]; int main() { int n; while (~scanf("%d",&n) && n) { while (1) { stack<int> s; scanf("%d",&a[0]); if (!a[0]) { puts(""); brea
杨鹏伟
2020/09/11
6860
Rails资源
Rails Resources Here I list some rails resources I found very helpful. Quick Start Ruby on Rails Guides Rails Bridge Tutorials Point Book The Rails 4 Way, Best rails book. Ruby on Rails Tutorial API Ruby on Rails API Screencast Rails Casts, excellent rai
用户2183996
2018/06/28
8620
[读书笔记] Conditional Generative Adversarial Nets
今天跟大家分享的论文是条件-GAN,不知道上一篇WGAN大家看的怎么样,因为公众号刚开通,貌似还不能留言,如果有问题,可以加我微信交流哦,如果发现问题,一定要告诉我,大家共同进步!比心 - * - 条
用户1622570
2018/04/11
1.2K0
[读书笔记] Conditional Generative Adversarial Nets
Ruby on Rails 基础(6)
没有创建成功,但是反馈结果却是成功 (说明这是一批命令,最后一个反馈结果正常),并且生成一个文件目录
franket
2021/11/25
1.7K0
Ruby On Rails 4 hello world,Ruby On Rails上手
有机会再试一试Rails了,仅仅是原来接触的是2,如今已然变成了4,似乎如今的安装比原来会快些。。
全栈程序员站长
2022/07/12
2.5K0
Ruby On Rails 4 hello world,Ruby On Rails上手
spring@Conditional
@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。
逍遥壮士
2020/09/18
6550
spring@Conditional
SpringBoot条件注解@Conditional
@Conditional注解是个什么东西呢,它可以根据代码中设置的条件装载不同的bean,比如说当一个接口有两个实现类时,我们要把这个接口交给Spring管理时通常会只选择实现其中一个实现类,这个时候我们总不能使用if-else吧,所以这个@Conditional的注解就出现了。
Java学习录
2019/04/18
6660
SpringBoot条件注解@Conditional
Spring - @Conditional全解
必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效
小小工匠
2021/08/17
2310
Spring - @Conditional全解
如何实现Conditional Include
本文转载:http://www.cnblogs.com/brusehht/archive/2010/09/01/1814962.html
跟着阿笨一起玩NET
2018/09/19
5590
Rails 容器与配置(4)
这个 ONBUILD 镜像可以用于大部分的Rails应用,它会完成类似如下的一些工作 :
franket
2021/10/20
9500
Conditional Adversarial Nets 详解
本文提出在利用 GAN(对抗网络)的方法时,在生成模型G和判别模型D中都加入条件信息来引导模型的训练,并将这种方法应用于跨模态问题,例如图像自动标注等。
zeekling
2022/06/17
3440
Conditional Adversarial Nets 详解
Rails路由
在创建资源路由时,会同时创建多个可以在控制器中使用的辅助方法,如上面的资源路由会创建以下方法:
用户1515472
2019/07/24
4.5K0
GitHub上的7个热门TypeScript项目,要不要学一下
TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)由微软开发的自由和开源的编程语言。设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
王小婷
2020/12/01
3.7K0
Stimulus:让web应用在移动端达到原生体验
【IT168 资讯】很多开发者一年来通过Basecamp写了很多JavaScript,但是并没有用它来创建现代意义上的“JavaScript应用程序”。所有的应用程序都以服务器端呈现的HTML为核心,然后添加一些JavaScript来使其看起来更棒。 当然,并不是说单页JavaScript应用程序的激增没有什么好处。主要的是更快,更流畅的接口让整页快速刷新。我们希望所有应用程序用客户端渲染重写所有东西,或者在移动设备上完全原生。 这个愿望可以得到一种解决方案:Turbolinks和Stimulus。 Tur
企鹅号小编
2018/02/07
1K0
Stimulus:让web应用在移动端达到原生体验

相似问题

rails turbolinks onerror javascript

10

Rails内联javascript和turbolinks

31

Rails 4/ Turbolinks:堆叠Javascript

10

兼容Turbolinks的Rails Javascript

11

rails中的Turbolinks和javascript插件

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文