Я не думаю, что вы можете получить эту информацию от установленного BaggingClassifier
.Но вы можете создать такой график, подбирая для различных n_estimators
:
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import BaggingClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris = datasets.load_iris()
X, X_test, y, y_test = train_test_split(iris.data,
iris.target,
test_size=0.20)
estimators = list(range(1, 20))
accuracy = []
for n_estimators in estimators:
clf = BaggingClassifier(DecisionTreeClassifier(max_depth=1),
max_samples=0.2,
n_estimators=n_estimators)
clf.fit(X, y)
acc = clf.score(X_test, y_test)
accuracy.append(acc)
plt.plot(estimators, accuracy)
plt.xlabel("Number of estimators")
plt.ylabel("Accuracy")
plt.show()
(Конечно, набор данных iris легко умещается только с одним DecisionTreeClassifier
, поэтому я установил max_depth=1
в этомпример.)
Для получения статистически значимого результата вы должны набрать BaggingClassifier
несколько раз для каждого n_estimators
и взять среднее значение полученной точности.