gpt4 book ai didi

python - TransformedTargetRegressor 不继承 feature_importances_ 属性

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:32 25 4
gpt4 key购买 nike

我正在使用 TransformedTargetRegressor将我的目标转换为日志空间。它是这样完成的

from sklearn.ensemble import GradientBoostingRegressor
from sklearn.compose import TransformedTargetRegressor
clf = TransformedTargetRegressor(regressor=GradientBoostingRegressor(**params),
func=np.log1p, inverse_func=np.expm1)

但是当我稍后打电话

feature_importance = clf.feature_importances_

我明白了

AttributeError: 'TransformedTargetRegressor' object has no attribute 'feature_importances_'

本来以为会继承原类的所有属性。如何解决?

更多背景信息 here是一个官方的例子。用我的替换初始化行会导致崩溃。

最佳答案

作为TransformedTargetRegressor Doc说,可以通过 .regressor_ 访问其组件回归器。这就是您想要的:

clf.regressor_.feature_importances_

可行的代码:

import numpy as np
import matplotlib.pyplot as plt

from sklearn import ensemble
from sklearn import datasets
from sklearn.utils import shuffle
from sklearn.metrics import mean_squared_error
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.compose import TransformedTargetRegressor #only in sklearn==0.20.2

# #############################################################################
# Load data
boston = datasets.load_boston()
X, y = shuffle(boston.data, boston.target, random_state=13)
X = X.astype(np.float32)
offset = int(X.shape[0] * 0.9)
X_train, y_train = X[:offset], y[:offset]
X_test, y_test = X[offset:], y[offset:]

# #############################################################################
# Fit regression model
params = {'n_estimators': 500, 'max_depth': 4, 'min_samples_split': 2,
'learning_rate': 0.01, 'loss': 'ls'}
#clf = ensemble.GradientBoostingRegressor(**params)
clf = TransformedTargetRegressor(regressor=GradientBoostingRegressor(**params),
func=np.log1p, inverse_func=np.expm1)

clf.fit(X_train, y_train)
mse = mean_squared_error(y_test, clf.predict(X_test))
print("MSE: %.4f" % mse)

print(clf.regressor_.feature_importances_)

它的输出:

MSE: 7.7145[6.45223704e-02 1.32970011e-04 2.92221184e-03 4.48101769e-04 3.57392613e-02 2.02435922e-01 1.22755948e-02 7.03996426e-02 1.54903176e-03 1.90771421e-02 1.98577625e-02 1.63376111e-02 5.54302378e-01]

关于python - TransformedTargetRegressor 不继承 feature_importances_ 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54246444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com