一尘不染

具有SVM基本分类器的AdaBoost的执行时间

python

我只是用这些参数制作了一个Adaboost分类器,

1.n_estimators = 50

2.base_estimator = svc(这是一个支持向量分类器)

3.学习率= 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)

数据集具有18个自变量,而1个分类因变量数据集具有10480个数据点

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

有什么方法可以检查spyder的执行时间吗?还是更好的方法呢?


阅读 387

收藏
2021-01-20

共1个答案

一尘不染

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

使用决策树作为基础分类器(更具体地讲,决策 树桩 ,即深度仅为1的DT
),设想了Adaboost(和类似的集成方法)。有充分的理由说明为什么今天仍然存在,如果您未明确指定base_classifier参数,则该参数将假定值为DecisionTreeClassifier(max_depth=1)。DT非常适合此类集合,因为它们本质上是
不稳定的 分类器,而SVM则不是这种情况,因此,在用作基本分类器时,预计不会提供太多支持。

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

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

2021-01-20