【问题标题】:How to assess the model and prediction of random forest when doing regression analysis?做回归分析时如何评估随机森林的模型和预测?
【发布时间】:2020-12-03 03:08:13
【问题描述】:

我知道当使用随机森林 (RF) 进行分类时,AUC 通常用于在将其应用于测试数据后评估分类的质量。但是,我不知道使用 RF 评估回归质量的参数。现在我想使用 RF 进行回归分析,例如使用包含数百个样本和特征的指标来预测化学品的浓度(数值)。

  1. 第一步是运行 randomForest 来构建回归模型,其中 y 为连续数值。根据残差均值和 % Var 解释,我如何知道模型是否好?有时我解释的 % Var 是负数。

  2. 之后,如果模型很好和/或直接用于测试数据,我就会得到预测值。现在我如何评估预测值的好坏?我在网上阅读了一些计算的准确性(公式:1-abs(predicted-actual)/actual),这对我来说也很有意义。但是,我的实际数据集中有很多零值,是否有其他解决方案来评估预测值的准确性?

期待任何建议,提前致谢。

【问题讨论】:

    标签: r random-forest


    【解决方案1】:

    randomForest R 包带有一个importance 函数,可用于确定模型的准确性。来自documentation

    importance(x, type=NULL, class=NULL, scale=TRUE, ...),其中x 是您对randomForest 的初始调用的输出。

    有两种类型的重要性度量。一种是使用袋外数据的排列来测试模型的准确性。另一个使用 GINI 指数。同样,来自文档:

    这里是变量重要性度量的定义。第一个度量是根据置换 OOB 数据计算的:对于每棵树,记录数据袋外部分的预测误差(分类错误率,回归的 MSE)。然后在排列每个预测变量后进行相同的操作。然后将两者之间的差异对所有树进行平均,并通过差异的标准偏差进行归一化。如果变量的差值的标准差等于 0,则不进行除法(但在这种情况下,平均值几乎总是等于 0)。

    第二个衡量标准是对变量进行拆分后节点杂质的总减少量,对所有树进行平均。对于分类,节点杂质通过基尼指数来衡量。对于回归,它是通过残差平方和来衡量的。

    要了解更多信息,您可以做的更简单的重要性检查,实际上比其他任何事情都更健全,是使用一种称为最佳常数模型的东西。最佳常数模型具有恒定输出,即测试数据集中所有响应的平均值。最好的常数模型可以被认为是可能的最粗略的模型。对于给定的一组测试数据,您可以将随机森林模型的平均性能与最佳常数模型进行比较。如果后者的性能至少比前者高出 3-5 倍,那么您的 RF 模型就不是很好。

    【讨论】:

    • 感谢您的回复。我知道重要的是评估每个预测变量的重要性,而不是模型本身,对吗?顺便问一下,在计算预测值和实际值的准确性时,您是否有处理零值的想法?谢谢。
    • 通常,如果您构建的模型只有非常弱的预测变量,通常意味着该模型可能很弱。
    • 我已经检查了重要性函数,并且所有预测变量都分配了 %IncMSE 值。所以我不知道预测变量有多弱。
    猜你喜欢
    • 2019-07-10
    • 2016-04-09
    • 2021-10-10
    • 2022-11-11
    • 2020-10-15
    • 2015-10-19
    • 2020-07-06
    • 2021-11-20
    • 2015-05-22
    相关资源
    最近更新 更多