我正在实现sklearn AdaBoostClassifier,并绘制了estimator_errors_,它表示增强集合中每个估算器的分类误差。
这是情节:
我有几个问题: 1.测试装置或训练装置是否有错误? 2.为什么在30中的错误是1? 3.它是累积误差吗?
谢谢。
我的代码:
base = LinearSVC(tol=1e-10, loss='hinge', C=1000, max_iter=50000)
ada = AdaBoostClassifier(base_estimator=base ,algorithm='SAMME', n_estimators=n,random_state=10)
答案 0 :(得分:2)
Sklearn AdaBoostClassifier具有n_estimators = 50的默认参数,我相信在您的情况下会使用该参数。但是,如果达到其他条件之一,则增强过程可能会提前终止。这可能是由基本估计器或SAMME算法的停止条件之一决定的。
就您而言,根据情节,似乎在30个估算器之后,补强停止了。您可以使用以下方式轻松获得估算器的实际数量:
len(estimator)
其中,估算器是使用AdaBoostClassifier拟合的估算器。错误类型取决于打印estimator_errors_
之前执行的功能。
estimator.predict(X_test)
estimator.estimator_errors_
显示测试数据X_test
的错误。
希望有帮助。