使用 SVM 基分类器的 AdaBoost 的执行时间

Dil*_*dya 3 python machine-learning svm adaboost scikit-learn

我刚刚用这些参数做了一个 Adaboost 分类器,

1.n_estimators = 50

2. base_estimator = svc(支持向量分类器)

3.learning_rate = 1

这是我的代码:

from sklearn.ensemble import AdaBoostClassifier
from sklearn.svm import SVC

svc = SVC(kernel = 'linear',probability = True)

ABC = AdaBoostClassifier(n_estimators = 50, base_estimator = svc, learning_rate = 1)

ABC.fit(X,Y)
Run Code Online (Sandbox Code Playgroud)

数据集有 18 个自变量和 1 个分类因变量数据集有 10480 个数据点

每当我运行它时,它会花费很多时间但没有任何结果。

有没有办法检查执行时间?或者有什么更好的方法来做到这一点?

des*_*aut 6

实际上,我们从不使用 SVM 作为 Adaboost 的基本分类器。

Adaboost(和类似的集成方法)是使用决策树作为基本分类器(更具体地说,决策树桩,即深度仅为 1 的 DT )构思的;有充分的理由为什么今天仍然如此,如果您没有明确指定base_classifier参数,它会假定值为DecisionTreeClassifier(max_depth=1)。DTs 适用于这种集成,因为它们本质上是不稳定的分类器,而 SVM 并非如此,因此当用作基分类器时,预计后者不会提供太多。

最重要的是,SVM 在计算上比决策树(更不用说决策树桩)昂贵得多,这就是您观察到的处理时间长的原因。

除非你有一个非常好的理由,坚持支持向量机作为基分类(我强烈怀疑,你这样做),除去base_estimator = svc以恢复到默认设置,则很可能会被罚款。