繁体   English   中英

Python:在什么情况下随机森林和SVM分类器可以产生较高的准确性?

[英]Python: In which cases will random forest and SVM classifiers can produce high accuracy?

我正在使用随机森林和SVM分类器进行分类,我有18322个样本在9个类别(3667、1060、1267、2103、2174、1495、884、1462、4210)中不平衡。 我使用10倍简历,我的训练数据具有100个特征尺寸。 在我的样本中,训练数据在这100个维度上并没有太大差异,当我使用SVM时,精度大约为40%,但是当我使用RF时,精度可以为92%。 然后,我使数据在这100个特征维度上的差异变得更小,但是,RF的精度也可以达到92%,但SVM的精度却下降到25%。

我的分类器配置为:

SVM:LinearSVC(penalty =“ l1”,dual = False)

RF:RandomForestClassifier(n_estimators = 50)

所有其他参数均为​​默认值。 我认为我的RF分类器一定有问题,但我不知道如何检查。

熟悉这两个分类器的任何人都可以给我一些提示吗?

线性SVC试图通过在欧氏空间中找到合适的超平面来分离您的类。 您的样本可能无法线性分离,从而导致性能不佳。 另一方面,随机森林使用几个(在这种情况下为50个)较简单的分类器(决策树),每个分类器都有分段线性决策边界。 当将它们加在一起时,最终会得到更加复杂的决策功能。

以我的经验,RF倾向于在默认参数下表现良好,甚至广泛的参数搜索也只会稍微提高精度。 SVM的行为几乎完全相反。

您尝试过其他配置吗? 如何为SVM进行网格搜索以寻找更好的参数?

由于您已经在使用sklearn ,因此可以使用sklearn.grid_search.GridSearchCV在此更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM