【问题标题】:Is the score from TransformedTargetRegressor of scikit-learn correct?scikit-learn 的 TransformedTargetRegressor 的分数是否正确?
【发布时间】:2021-09-14 16:49:28
【问题描述】:

我做了一个简短的Jupyter notebook 来回答我关于 TransformedTargetRegressor 的问题。
我想在管道中放置一个转换器以使用参数网格,但分数不匹配。

...
model = linear_model.LinearRegression()
lg_tr = preprocessing.FunctionTransformer(func=np.log, inverse_func=np.exp, check_inverse=True)
y_log = lg_tr.transform(y)
score_0 = model.fit(X, y_log).score(X, y_log)
...
model = compose.TransformedTargetRegressor(func=np.log, inverse_func=np.exp, check_inverse=True,
    regressor=linear_model.LinearRegression())
score_1 = model.fit(X, y).score(X, y)

score_0 值是正确的。为什么score_1的不是呢?
我对运行良好的预测没有问题,只有分数。
我错过了什么吗?
谢谢=)

【问题讨论】:

  • 我认为得分 1 是计算实际目标值范围内性能的正确方法

标签: python machine-learning scikit-learn transformer


【解决方案1】:

通常,您应该对模型在预测其原始范围或规模的实际值时的表现(或得分)感兴趣。然而,这是您使用 score_1 测量的值,不是使用 score_0

score_0 代表模型在目标变量为对数尺度时的性能,这在大多数情况下不是很有用。

score_1 但是使用TransformedTargetRegressorscore 方法,在计算任何性能指标之前确保目标变量处于其原始规模。因此,应根据score_1进行判断。

【讨论】:

  • 谢谢,这很有道理。我太专注于拟合数据而忘记了含义......祝你有美好的一天=)
猜你喜欢
  • 2019-09-15
  • 2012-12-23
  • 2019-07-31
  • 2014-10-01
  • 2014-11-24
  • 2015-03-20
  • 2019-07-03
  • 2017-05-18
相关资源
最近更新 更多