我正在探索 sklearn 中的 AdaBoost 分类器。这是数据集的图。(X,Y 是预测列,颜色是标签)
正如你所看到的,两边正好有 16 个点很容易被错误分类。为了检查性能如何随着 n_estimators 的增加而增加,我使用了这段代码
for i in range(1,21):
clf = AdaBoostClassifier(DecisionTreeClassifier(max_depth=2),
n_estimators=i,algorithm='SAMME')
clf.fit(X_df,y)
y_pred = clf.predict(X_df)
from sklearn.metrics import confusion_matrix as CM
#CM(y_pred,y_pred1)
#CM(y,y_pred1)
print(i,CM(y,y_pred))
直到 n_estimators = 13,所有 32 个点都未分类。混淆矩阵是
[[84 16]
[16 84]]
(除了 n_estimators=8。这里所有的红点都被正确分类了)
[[100 0]
[16 84]]
从 13 日起,它开始以一种奇怪的方式翻转。混淆矩阵是按顺序给出的。
[[84 16] | [[ 84 16] | [[84 16] | [[ 84 16] | [[ 84 16] | [[100 0] | [[100 0] | [[84 16]
[16 84]] | [ 0 100]] | [16 84]] | [ 0 100]] | [ 0 100]] | [ 16 84]] | [ 0 100]] | [16 84]]
显然 n_estimators=19 比 n_estimators = 20 提供更好的性能。
有人可以解释发生了什么以及导致这种行为的原因吗?
