首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridsearchCV负值

GridsearchCV负值
EN

Stack Overflow用户
提问于 2019-01-31 13:55:41
回答 2查看 4.6K关注 0票数 0

我正在使用sklearn的GridSearchCV来获得我的随机林模型的最佳参数。

下面是我的代码

代码语言:javascript
复制
model = RandomForestRegressor(random_state = 1, n_jobs = -1) 
param_grid = {"n_estimators": [5, 10]}



for parameter, param_range in dict.items(param_grid):   
    #get_optimum_range(parameter, param_range, RFReg, index)

    grid_search = GridSearchCV(estimator=model, param_grid = {parameter: param_range})
    grid_search.fit(X_train, y_train)
    results = pd.DataFrame(grid_search.cv_results_)

我的结果数据如下

如果你观察到我的mean_test_score是阴性的,但mean_train_score是阳性的。

同样的原因是什么?

我的数据大小

代码语言:javascript
复制
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)

(538, 3)
(538,)
(112, 3)
(112,)
EN

回答 2

Stack Overflow用户

发布于 2019-01-31 18:35:32

在gridsearch中,如果不指定任何记分器,则使用估计器的默认记分器(此处为RandomForestRegressor):对于随机森林回归器,默认分数为R平方分数:它也可称为决定系数。

返回预测的决定系数R^2。 系数R^2定义为(1-u/v),其中u是残差平方和> ((y_true - y_pred) ** 2).sum(),v是平方之和((y_true - y_true.mean()) ** 2).sum()。最好的分数是1.0,它可以是负的(因为模型可以任意恶化)。一个常数模型总是预测y的期望值,而不考虑输入特性,则得到R^2分数为0.0。

R平方基本上是你的模型所解释的方差百分比。

您还可以看到,与简单的模型相比,回归更好,预测的值总是相同的(平均值)(所以是2D中的一条线)。

如果你的R平方是负的,这意味着你的模型比一条简单的水平线差,这意味着你的模型不适合你的数据。

在您的例子中,您的列车R^2非常好,所以这要么意味着您设法将您的数据过度匹配(但这是不可能的),要么就是测试数据与火车数据不类似。

票数 1
EN

Stack Overflow用户

发布于 2021-06-10 15:31:11

除了R^2可能是负值(在其他答案中详细说明)之外,值得注意的是,评分API的实现总是将值最小化,因此,对于用户提供的评分函数来说,如果更高的话,符号就会翻转,正如https://stackoverflow.com/a/27323356/6917627中所解释的那样。

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

https://stackoverflow.com/questions/54462142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档