【问题标题】:Minimize a certain class error in a multi-class random forest model (tidymodels)最小化多类随机森林模型(tidymodels)中的某个类错误
【发布时间】:2022-01-18 03:40:58
【问题描述】:

(请注意,我还没有可重现的示例,但我正在研究它)。

我使用 tidymodel 框架训练了一个随机森林模型。我的结果是一个包含三个类别的类别变量。

现在,在查看预测类和实际类之间的混淆矩阵时,我注意到有一个单元格,其中类错误特别高:

示例表:

# A tibble: 3 x 4
  predicted_class actual_class_1 actual_class_2 actual_class_3
  <chr>                    <int>          <int>          <int>
1 1                          260             77             20
2 2                          109            460             84
3 3                           52             99            781

我特别担心/感兴趣的是模型预测第 2 类的第 1 类不匹配(即 N=109 个案例,占第 1 类的 26%)。

现在,我的问题是:有没有办法设置随机森林模型以优化某个类错误,试图减少 26% 的不匹配?

我可以想象的一种天真的方法是在分配第 1 类和第 2 类时使用不同的概率阈值,但我希望有一种更具防御性/模型固有的方法。

有什么想法吗?

【问题讨论】:

    标签: r random-forest tidymodels


    【解决方案1】:

    ranger::ranger() 有一个名为 class.weights 的参数,randomForest::randomForest()classwt。两者都是数字向量。

    这些可让您在树结构中优先考虑(或取消优先级)特定类。

    您可以将这些向量参数传递给set_engine()。我们没有优化它们的工具(目前 - 可能只是二元结果),但您可以使用工作流集来评估不同的策略。

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 2018-07-10
      • 2017-03-15
      • 2012-10-27
      • 2013-12-12
      • 2016-01-24
      • 2017-10-20
      • 2016-04-02
      • 2021-09-29
      相关资源
      最近更新 更多