【发布时间】:2020-10-14 09:45:09
【问题描述】:
我使用 scikit-Learn 设置了一个小型管道,我将其包裹在 TransforedTargetRegressor 对象中。训练结束后,我想从训练有素的估计器中访问属性(例如feature_importances_)。谁能告诉我这是怎么做到的?
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import MinMaxScaler
from sklearn.compose import TransformedTargetRegressor
# setup the pipeline
Pipeline(steps = [('scale', StandardScaler(with_mean=True, with_std=True)),
('estimator', RandomForestRegressor())])
# tranform target variable
model = TransformedTargetRegressor(regressor=pipeline,
transformer=MinMaxScaler())
# fit model
model.fit(X_train, y_train)
我尝试了以下方法:
# try to access the attribute of the fitted estimator
model.get_params()['regressor__estimator'].feature_importances_
model.regressor.named_steps['estimator'].feature_importances_
但这会导致以下NotFittedError:
NotFittedError:此 RandomForestRegressor 实例尚未拟合。 在使用此方法之前,使用适当的参数调用“fit”。
【问题讨论】:
标签: python scikit-learn pipeline