Доступ к каждому оценщику в BaggingClassifier - PullRequest
0 голосов
/ 11 апреля 2020

Представьте, что у меня есть это:

model = BaggingClassifier((base_estimator=DecisionTreeClassifier(), n_estimators=31)

Я хочу получить доступ к каждому 31 оценкам, но я не знаю, как это сделать. Я пробовал:

for _ in model.estimators_:
    # stuff

, но это дает мне эту ошибку:

AttributeError: 'BaggingClassifier' object has no attribute 'estimators_'

Но в Руководство по BagginClassifier это выглядит как

оценки_: список оценок . Коллекция встроенных базовых оценок.

1 Ответ

1 голос
/ 11 апреля 2020

Атрибут estimators_ требует, чтобы модель была установлена ​​первой:

from sklearn.svm import SVC
from sklearn.ensemble import BaggingClassifier
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=100, n_features=4,
                            n_informative=2, n_redundant=0,
                            random_state=0, shuffle=False)
clf = BaggingClassifier(base_estimator=SVC(),
                         n_estimators=3, random_state=0)

clf.estimators_
# AttributeError: 'BaggingClassifier' object has no attribute 'estimators_'

clf.fit(X, y)
clf.estimators_
# result:
[SVC(C=1.0, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,
     decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',
     max_iter=-1, probability=False, random_state=2087557356, shrinking=True,
     tol=0.001, verbose=False),
 SVC(C=1.0, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,
     decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',
     max_iter=-1, probability=False, random_state=132990059, shrinking=True,
     tol=0.001, verbose=False),
 SVC(C=1.0, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,
     decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',
     max_iter=-1, probability=False, random_state=1109697837, shrinking=True,
     tol=0.001, verbose=False)]
...