如何通过堆叠获得集成模型的每个基本模型的分数

How to get score for each base model with ensemble model from stacking

我创建了一个 Stacking Ensemble Model。下面给出模型

def get_stacking():
    level0 = list()
    level0.append(("DT", DecisionTreeRegressor()))
    level0.append(("DT-2", DecisionTreeRegressor(max_depth=2)))
    level1 = LinearRegression()
    model = StackingRegressor(estimators=level0, final_estimator=level1)
    return model

我想获得每个基础模型的 score 和最终集成模型的分数。所以,我正在使用(使用 estimators_)下面的代码来访问 base model

if __name__ == "__main__":
    DATASETS = {"Dataset": generate_data}
    models = get_stacking()
    for dataset_name, generate_dataset in DATASETS.items():
        dfs = []
        for i, model in models.estimators_:
                df = analyse(
                    generate_dataset=generate_dataset,
                    regressor=model,
                    reg_name=i)

但是,我收到一个错误 AttributeError: 'StackingRegressor' object has no attribute 'estimators_'

你能告诉我为什么会出现错误吗?我该如何解决这个问题?

您还没有安装堆叠模型。属性 estimators_ 包含拟合后的拟合基估计量;参数 estimators 包含未拟合的基本估计量。