scikit-learn进行回归模型评估

核糖核酸

我正在做回归,sklearn并使用随机网格搜索来评估不同的参数。这是一个玩具示例:

from sklearn.datasets import make_regression
from sklearn.metrics import mean_squared_error, make_scorer
from scipy.stats import randint as sp_randint
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.cross_validation import LeaveOneOut
from sklearn.grid_search import GridSearchCV, RandomizedSearchCV
X, y = make_regression(n_samples=10,
                       n_features=10,
                       n_informative=3,
                       random_state=0,
                       shuffle=False)

clf = ExtraTreesRegressor(random_state=12)
param_dist = {"n_estimators": [5, 10],
              "max_depth": [3, None],
              "max_features": sp_randint(1, 11),
              "min_samples_split": sp_randint(1, 11),
              "min_samples_leaf": sp_randint(1, 11),
              "bootstrap": [True, False]}
rmse = make_scorer(mean_squared_error, greater_is_better=False)
r = RandomizedSearchCV(clf, param_distributions=param_dist,
                       cv=10,
                       scoring='mean_squared_error',
                       n_iter=3,
                       n_jobs=2)
r.fit(X, y)

我的问题是:

1)不RandomizedSearchCV使用r2的打分函数?没有记录默认的回归评分功能是什么。

2)即使我mean_squared_error在代码中用作评分函数,分数为何也为负(如下所示)?mean_squared_error应该都是积极的。然后,当我计算时r.score(X,y),似乎又在报告R2在所有这些情况下的分数令我感到困惑。

In [677]: r.grid_scores_
Out[677]: 
[mean: -35.18642, std: 13.81538, params: {'bootstrap': True, 'min_samples_leaf': 9, 'n_estimators': 5, 'min_samples_split': 3, 'max_features': 3, 'max_depth': 3},
 mean: -15.07619, std: 6.77384, params: {'bootstrap': False, 'min_samples_leaf': 7, 'n_estimators': 10, 'min_samples_split': 10, 'max_features': 10, 'max_depth': None},
 mean: -17.91087, std: 8.97279, params: {'bootstrap': True, 'min_samples_leaf': 7, 'n_estimators': 10, 'min_samples_split': 7, 'max_features': 7, 'max_depth': None}]

In [678]: r.grid_scores_[0].cv_validation_scores
Out[678]: 
array([-37.74058826, -26.73444271, -36.15443525, -23.11874605,
       -33.60726519, -33.4821689 , -36.14897322, -43.80499446,
       -68.50480995, -12.97342433])

In [680]: r.score(X,y)
Out[680]: 0.87989839693054017
弗雷德·富
  1. 就像GridSearchCV一样,RandomizedSearchCVscore默认使用估计器上的方法。ExtraTreesRegressor和其他回归估算器从此方法返回R²得分(分类器返回准确性)。

  2. 约定是分数是要最大化的东西。均方误差是将损失最小化的损失函数,因此在搜索范围内被取反。

然后,当我计算r.score(X,y)时,似乎再次报告了R2。

不好看 可以说是一个错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Logistic回归模型中的内核LogisticRegression scikit-learn sklearn

使用 Scikit-Learn 使用分类数据制作回归模型

在scikit-learn中从pyspark复制logistic回归模型

scikit-learn线性回归模型执行中的问题

如何使用 scikit-learn 评估基于文本的模型?

使用scikit-learn的WhiteKernel进行高斯过程回归

Scikit-Learn与Keras(Tensorflow)进行多项逻辑回归

在使用scikit的LatentDirichletAllocation类进行训练时评估模型

使用 scikit-learn 训练线性回归模型后,如何对原始数据集中不存在的新数据点进行预测?

总结 Scikit-Learn 的线性回归的预测

在Scikit Learn中控制Logistic回归的阈值

线性回归的模拟scikit-learn python

TypeError:在Scikit-learn中拟合逻辑回归模型时,类型提升无效

scikit学习决策树模型评估

使用Scikit Learn对时间序列熊猫数据框进行线性回归

使用带有管道和不带管道的Scikit Learn StandardScaler进行Keras回归

使用scikit-learn(sklearn),如何处理缺失数据以进行线性回归?

由于“重塑”问题,无法在scikit-Learn中进行线性回归

使用scikit-learn(sklearn),如何处理缺失数据(因变量y)进行线性回归?

Scikit-learn 微调:在评估前对预测标签进行后处理

从scikit-learn管道获取模型属性

继承自scikit-learn的LassoCV模型

更新 scikit-learn

scikit-learn用于回归的半监督学习

Logistic回归系数scikit-learn与statsmodels

scikit-learn中的多输出高斯过程回归

在Logistic回归(Scikit-learn)中选择适当的公差值

scikit-learn中岭回归的系数路径

如何使用scikit-learn执行多元线性回归?