python - 对于我的数据,为什么基于树的学习算法的准确率只有50%左右?

标签 python machine-learning scikit-learn

对于我的数据,我尝试了几种基于树的网格搜索算法,例如 XGBoostClassifier、RandomForestClassifier,但准确率只有 50% 左右。

然后我尝试了SVC,在网格搜索中测试准确率可以达到80%。

有什么方法(最好是可视化)可以帮助我们说出背后的原因吗?

最佳答案

根据经验,SVM 非常适合异常值较少的相对较小的数据集。随机森林需要更多数据,但根据我的经验,它往往是一个非常强大的模型。在实践中,选择哪个分类器的决定实际上取决于您的数据集和问题的一般复杂性,我不确定您的情况是否完全如此。
我应该提到另一个潜在的偏差是需要调整的参数。在随机森林树中,需要调整的参数有限(也许树的数量除外;通常,我们拥有的树越多越好)。而对于支持向量机,你必须选择“正确的”内核、正则化惩罚、松弛变量等,这是通常“开箱即用”的随机森林往往表现更好的另一个原因。

如果就预测性能而言,在某些情况下支持向量机的表现优于随机森林,反之亦然。请参阅下面的论文。

Caruana, Rich, and Alexandru Niculescu-Mizil. "An empirical comparison of supervised learning algorithms." Proceedings of the 23rd international conference on Machine learning. ACM, 2006.

关于python - 对于我的数据,为什么基于树的学习算法的准确率只有50%左右?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107387/

相关文章:

python - python 中的字典,我在开始时设置的顺序

python - 在python中拆分数据框

python - 为回归重现 LightGBM 自定义损失函数

python-3.x - tensorflow.contrib.learn.DNNclassifier 缺少 1 个必需的位置参数 : 'feature_columns'

machine-learning - 如何对连续数据进行分类?

scikit-learn - 部分拟合是否在 sklearn.decomposition.IncrementalPCA 中并行运行?

python - 如何在 OpenMesh 中为面着色?

python - 在 Mac 上,如何为菜单栏(等)中显示脚本名称而不是 Python 的 python 脚本创建拖放应用程序?

python - sklearn 随机状态不是随机的

python - 如何从 BernoulliRBM 获得分数