TransformedTargetRegressor的“更好”评分方法

时间:2019-10-24 21:30:29

标签: python scikit-learn

scikit-learn中的TransformedTargetRegressor得分没有我期望或期望的高。据我所知,在对回归器的输出进行逆变换之后,它会在原始y和预测的y_pred上调用r2score函数。我宁愿知道估计的分数在转换后的y和回归器的输出上的得分。为了简单起见,下面没有显示,但我想将它们全部保留在Pipeline中,所以我希望有一种包装TransformedTargetRegressor或传递自定义score方法的方法。

针对我的特定问题,设置以下线性回归:

import numpy as np
from sklearn.linear_model import LinearRegression

X = np.arange(10).reshape(-1, 1)
y = (2 * X).ravel() + np.random.normal(size=10)

estimator = LinearRegression()
estimator.fit(X, y)
estimator.score(X, y)

对于以下修改或包装tt估算器的建议,我将不胜感激,以使其产生与上述相同的相同得分。

from sklearn.compose import TransformedTargetRegressor

ey = np.exp(y)
tt = TransformedTargetRegressor(regressor=estimator, func=np.log, inverse_func=np.exp)
tt.fit(X, ey)
tt.score(X, ey)

0 个答案:

没有答案