在使用随机森林进行预测时,我们经常(或总是)需要执行一些预处理。
这不是真的。随机森林真的是“现成的”。
异常值。我们应该将它们全部删除吗?如果是这样,我们是否考虑基于 3/2 规则的异常值?我们应该保留它们吗?为什么?
RF 中使用的基本模型是一个大型决策树(通常通过 CART 构建)。决策树对异常值具有鲁棒性,因为它们将它们隔离在特征空间的小区域中。然后,由于每个叶子的预测是平均值(用于回归)或多数类(用于分类),在单独的叶子中被隔离,异常值不会影响其余的预测(例如,在回归的情况下,它们不会影响其他叶子的平均值)。底线:您不关心 RF 中的异常值。如果它们是异常观察(例如,由于记录错误),只需删除它们。如果它们是有效案例,您可以保留它们。
在处理观察值的增量时(例如,假设我要从另一个中减去一个学生的成绩),我应该标准化所有学生的增量还是只坚持绝对增量?坚持同一个学生案例,如果我有累积数据(假设每次考试我总结他们的最后成绩)。流程应该一样吗?
这里的问题与射频无关,它与算法无关。真正的问题是你想做什么?你想预测什么?
我们是否需要应用任何数据转换,如日志或任何其他?如果是这样,应该什么时候完成?数据范围大时?在这里更改数据域有什么意义?
出于同样的原因,您无需担心异常值,您无需在使用 RF 时应用任何类型的数据转换。对于分类,如果您遇到类不平衡问题,您可能需要应用某种重新采样/加权策略,但仅此而已。
如果我有一个分类目标,我可以应用回归而不是分类,这样输出将是(假设类是 0、1、2)0.132、0.431;那么它会更准确吗?
如果您的目标是分类的,则不能应用回归。
随机森林更能说明什么样的问题?大型数据集?
RF 适用于所有类型的问题。人们(尤其是在医学领域、基因组学等领域)甚至主要使用它来衡量其可变的重要性。在遗传学中,这些人面临“小 - 大 ”问题,RF 也做得很好。无论如何,机器学习通常需要足够数量的训练和测试数据,尽管没有一般规则。如果您的训练数据代表了您的所有概念,并且这些概念很容易捕获,那么几百次观察就足够了。但是,如果应该学习的内容非常复杂并且某些概念的代表性不足,则需要更多的训练数据。np
我应该舍弃不太重要的变量吗?也许它只是制造噪音?
通过 CART 构建的决策树的另一个不错的特性是它们会自动将不重要的变量放在一边(每次拆分时只选择最佳拆分器)。在Hastie 等人的开创性著作中。(2009 年),作者表明,使用 100 个纯噪声预测器和 6 个相关预测器,相关变量在每次拆分时仍有 50% 的时间被选择。所以你真的不需要担心 RF 中的变量选择。当然,如果您知道某些变量没有贡献,请不要包含它们,但如果您正在研究的过程的基本机制大多未知,您可以包含所有候选预测变量。