提取 Bagging Regressor Ensemble 的成员
Extract Members of Bagging Regressor Ensemble
我使用了 BaggingRegressor class 来构建具有以下参数的最佳模型:
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
Reg_ensemble=BaggingRegressor(base_estimator=DecisionTreeRegressor(max_depth=3),n_estimators=10,random_state=0).fit(feature,target)
按照上面的设置,将会创建10棵树。我想分别提取和访问集成回归(每棵树)的每个成员,然后在每个成员上安装一个测试样本。是否可以访问每个模型?
拟合模型的 estimators_
属性提供了一个包含集成估计量的列表;这是一个带有虚拟数据的示例,为简洁起见 n_estimators=3
:
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=4,
n_informative=2, n_targets=1,
random_state=0, shuffle=False)
regr = BaggingRegressor(base_estimator=DecisionTreeRegressor(max_depth=3),
n_estimators=3, random_state=0)
regr.fit(X, y)
regr.estimators_
# result:
[DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=2087557356, splitter='best'),
DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=132990059, splitter='best'),
DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=1109697837, splitter='best')]
拟合 BaggingRegressor
后(拟合前基本估计量不存在),您可以访问基本估计量以使用数据 Xs, ys
进行拟合,如下所示:
for model in regr.estimators_:
model.fit(Xs, Ys)
我使用了 BaggingRegressor class 来构建具有以下参数的最佳模型:
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
Reg_ensemble=BaggingRegressor(base_estimator=DecisionTreeRegressor(max_depth=3),n_estimators=10,random_state=0).fit(feature,target)
按照上面的设置,将会创建10棵树。我想分别提取和访问集成回归(每棵树)的每个成员,然后在每个成员上安装一个测试样本。是否可以访问每个模型?
拟合模型的 estimators_
属性提供了一个包含集成估计量的列表;这是一个带有虚拟数据的示例,为简洁起见 n_estimators=3
:
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=4,
n_informative=2, n_targets=1,
random_state=0, shuffle=False)
regr = BaggingRegressor(base_estimator=DecisionTreeRegressor(max_depth=3),
n_estimators=3, random_state=0)
regr.fit(X, y)
regr.estimators_
# result:
[DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=2087557356, splitter='best'),
DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=132990059, splitter='best'),
DecisionTreeRegressor(ccp_alpha=0.0, criterion='mse', max_depth=3,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=1109697837, splitter='best')]
拟合 BaggingRegressor
后(拟合前基本估计量不存在),您可以访问基本估计量以使用数据 Xs, ys
进行拟合,如下所示:
for model in regr.estimators_:
model.fit(Xs, Ys)