首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机森林多类Python不能提高准确性

随机森林多类Python不能提高准确性
EN

Stack Overflow用户
提问于 2018-10-08 13:37:56
回答 2查看 144关注 0票数 0

我正在做一个随机森林多分类器模型。基本上有一百个有200+特征的家庭,基于这些特性,我必须将它们分类为{1,2,3,4,5,6}类中的一个。

我面临的问题是,无论我能尝试多少,我都无法提高模型的准确性。我使用过RandomSearchCV和GridSearchCV,但我只能达到68%左右的准确度。

值得注意的几点

  1. 样本点不平衡。这是按递减顺序{1,4,2,7,6,3}的类的顺序。我使用了class_weight = "balanced“,但它确实提高了准确性。
  2. 我试过的估计数从50到450不等
  3. 我还计算了f1评分,而不仅仅是为了比较模型的准确性。

你们还有什么建议来提高准确度/F1得分?从很长一段时间以来,这个问题一直困扰着我。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2022-01-21 11:17:14

您可以检查功能是否在不同的尺度上。如果是,则建议使用某种类型的规范化。对于许多基于线性的模型来说,这一步骤是非常重要的。您可以快速查看每个数字特性的发行版,以决定使用哪种类型的规范化。

票数 0
EN

Stack Overflow用户

发布于 2022-01-21 11:45:03

尝试在以下参数下进行调优

n_estimators

这是你想要建立的树的数目,然后进行最大的投票或预测的平均数。树数越多,性能越好,但代码速度越慢。

max_features

这些是允许随机森林在单个树中尝试的最大特征数。Python中有多个选项可用于分配最大的特性。

min_sample_leaf

叶是决策树的末端节点。较小的叶子使得模型更容易捕捉到列车数据中的噪声。您可以从一些最小值开始,比如75,然后逐步增加它。看看你的准确度有多高。

否则:

  1. 您可以尝试XGBoost、LightGBM或Adaboost,它们的性能通常比随机森林更好
  2. 不要删除丢失的值,复杂的集成模型(如RF和GBM )会很好地处理它,这样做可能会丢失一些有用的信息,特别是在某些特性中丢失了大量数据的情况下。
  3. 尝试增加n_estimators和max_depth,可能您的树不够深,无法捕获所有数据属性。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52703577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档