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 个数据点
每当我运行它时,它会花费很多时间但没有任何结果。
有没有办法检查执行时间?或者有什么更好的方法来做到这一点?
实际上,我们从不使用 SVM 作为 Adaboost 的基本分类器。
Adaboost(和类似的集成方法)是使用决策树作为基本分类器(更具体地说,决策树桩,即深度仅为 1 的 DT )构思的;有充分的理由为什么今天仍然如此,如果您没有明确指定base_classifier
参数,它会假定值为DecisionTreeClassifier(max_depth=1)
。DTs 适用于这种集成,因为它们本质上是不稳定的分类器,而 SVM 并非如此,因此当用作基分类器时,预计后者不会提供太多。
最重要的是,SVM 在计算上比决策树(更不用说决策树桩)昂贵得多,这就是您观察到的处理时间长的原因。
除非你有一个非常好的理由,坚持支持向量机作为基分类(我强烈怀疑,你这样做),除去base_estimator = svc
以恢复到默认设置,则很可能会被罚款。
归档时间: |
|
查看次数: |
906 次 |
最近记录: |