我只是用这些参数制作了一个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的执行时间吗?还是更好的方法呢?
实际上,我们 从不 使用SVM作为Adaboost的基本分类器。
使用决策树作为基础分类器(更具体地讲,决策 树桩 ,即深度仅为1的DT ),设想了Adaboost(和类似的集成方法)。有充分的理由说明为什么今天仍然存在,如果您未明确指定base_classifier参数,则该参数将假定值为DecisionTreeClassifier(max_depth=1)。DT非常适合此类集合,因为它们本质上是 不稳定的 分类器,而SVM则不是这种情况,因此,在用作基本分类器时,预计不会提供太多支持。
base_classifier
DecisionTreeClassifier(max_depth=1)
最重要的是,SVM在计算上比决策树(更不用说决策 树桩 )昂贵得多,这就是观察到的处理时间长的原因。
除非你有一个 非常 好的理由,坚持支持向量机作为基分类(我强烈怀疑,你这样做),除去base_estimator = svc以恢复到默认设置,则很可能会被罚款。
base_estimator = svc