什么时候不应该使用预测筛选?我很好奇,什么时候不应该使用预测筛选工具?如果是,您应该对数据进行哪些检查,以了解在使用预测筛选工具时是否会遇到问题?
基础数据分析与建模回复:什么时候不应该使用预测筛选?我发现预测因子筛选非常有价值,但就像任何自动化工具一样,它无法解释某些事情。当您有许多潜在预测因子时,它最有价值 - 但是,当这些预测因子紧密相关时,我不太信任自动化程序。我发现这是一个常见问题,我的数据集包含许多紧密相关的指标(例如,多个不同时间点的酒店空房情况)。如果您仅使用预测因子筛选,您可能会得到最密切相关的指标之一,或者可能会选择其中的多个指标。或者,可能没有一个会脱颖而出(我不确定这一点)?在这种情况下,我会使用多元平台手动分析密切相关的预测因子。然后我可以选择其中一个相关指标用于预测因子筛选。
还有其他更复杂的情况。预测筛选不会确定您是否应该创建新变量作为现有变量的函数(例如两个度量的比率)。它不会让您知道是否应该重新编码某些名义变量(我也不确定这一点 - 我还没有尝试过)。总的来说,我认为预测筛选不会取代所有正常的数据清理步骤 - 在清理数据后使用时最有价值。
回复:什么时候不应该使用预测筛选?谢谢。我也觉得它非常有价值,所以我想知道它可能会在哪里失败,以及如何检查失败?我不太了解它所基于的 bootstrap 森林模型(我认为),但我简要地读到过它不像线性模型那样容易受到多重共线性的影响,但也知道如果响应和预测变量之间存在线性关系,或者缺少 iid,它可能会失败,但我不知道你如何在预测筛选器中检查这些假设,或者事实上是否如此,因为我对这些类型的数据分析还很陌生。如果 JMP 有一个关于在假设检查等方面要寻找什么的教程,那就太好了。
回复:什么时候不应该使用预测筛选?嗨@mjz5448 ,
根据我之前对类似主题的回答,我可能会添加一个补充答案来阐明给出的一些信息:
预测筛选器与 DOE 相比?
预测因子筛选
预测筛选问题
预测因子筛选是一种基于随机森林算法的方法,可帮助您识别历史数据中响应的重要变量(通过计算特征重要性来确定)。根据数据的代表性、实验空间的覆盖范围、缺失值、异常值的存在、因素之间的相互作用、相关性或多重共线性,此平台可能存在一些捷径和许多未知数,不应盲目信任(正如@dlehman1所述)。
- 通过此分析,您可以获得的分析和见解仅限于历史实验空间(对于很好地理解系统而言,这可能太有限和/或不具有代表性)。您可以将其视为生产实验空间(历史数据)与研发(DoE):在生产中,只允许对因素进行小幅变化(有些是固定的,因此您无法确定它们的重要性)以创建稳健而优质的产品,而在研发中,目标则不同:探索实验空间并优化系统的因素,通过使用考虑因素的更大范围。
- 预测器筛选平台不会为您提供模型(与 JMP Pro 中提供的 Bootstrap Forest 不同),只会提供特征/因子重要性,因此您无法访问单个树和分支,这有助于识别因子之间的相互作用以及用于分割的因子的阈值。
- 由于您不知道背后模型的质量(通过 R²、RMSE 或根据您的目标的其他相关指标),您不知道通过它解释了多少变异性(或模型有多准确)以及特征重要性的计算是否与您的主题相关/充分。
- 由于所有因素都经过排序,因此重要因素和非重要因素之间的阈值/限制并不简单。为了帮助您,您可以添加一个随机因素(具有随机值)。此处显示了此技术的一个示例,其中 JMP 的钻石数据集以价格作为响应,添加一个随机因素并省略克拉重量作为可能的输入(因为它是一个非常重要的预测因子,所以我想向您展示一个很难整理出其他预测因子的示例):

- 该平台不会向您提供因素之间可能存在的相关性或多重共线性的迹象。您可以使用多元平台探索输入、输出和输入-输出之间的相关性。您还可以创建虚拟回归模型来计算因素之间的 VIF 分数,以发现多重共线性。
- 高基数分类因素也可能使特征重要性计算产生偏差。基数(类别数)越大,偏差越大,因为数据将形成大量小组/类别,模型将尝试学习这些小组/类别。因此,模型将无法概括或“理解逻辑”,因此这将增加过度拟合的可能性,从而使该特征具有很高的重要性。
这里有一个示例,使用相同的数据集,相同的条件,但添加了一个具有 11 个级别的随机分类因子(从 A 到 K,名为“Shuffle[Column10]”)。这个具有高基数的分类随机特征的排名高于之前看到的随机数值变量:

关于多重共线性的问题:
- 在随机森林中,变量之间的多重共线性通过在每个节点上随机选择特征子集来处理:在每个节点上,为了确定下一个拆分,您可以随机创建一个特征子集,并评估该子集中哪个特征(以及在哪个阈值水平)能够根据响应值最好地分离数据点。因此,由于每个特征都有同等的机会被选中,因此甚至可以选择相关特征并在模型中具有相似的特征重要性。此过程最大限度地减少了列之间相关性的影响,而决策树(或提升树)则不存在此过程,决策树会创建一棵树,每个节点都会测试所有特征:只有一个相关特征可能会被选中进行拆分。
- 由于随机森林基于在引导样本上并行训练的许多决策树创建了一个大模型,因此每棵树都在略有不同的数据集上进行训练,这也有助于减少每棵树之间的相关性(行之间的相关性)并减少模型方差。
有关基于树的模型的更多信息:
https://community.jmp.com/t5/Mastering-JMP/Understanding-and-Applying-Tree-based-Methods-for-Predictor/tac-p/593506/highlight/true#M370
关于随机森林的优势: https://www.linkedin.com/posts/victorguiller_doe-machinelearning-randomforests-activity-7127557799810625536-FH7K
希望这个补充答案能帮助你,
回复:什么时候不应该使用预测筛选?谢谢 Victor_G。我很欣赏对多重共线性的洞察——这不是我通常会考虑的问题,但我会尝试在未来这样做。
如果您的数据不是独立同分布 (iid),您是否知道预测因子筛选是否有效?我读到过,如果您的数据具有时间序列趋势,那么基于树的/随机森林模型就会有局限性,这可以克服,但您需要以某种方式转换数据。但我不确定这是否适用于预测因子筛选,因为我刚刚开始学习这个主题。
回复:什么时候不应该使用预测筛选?嗨@mjz5448 ,
随机森林可用于时间序列预测(以及其他算法)。
对于非独立同分布数据,最大的预防措施是考虑数据中的依赖关系/组,无论它是来自相似的观察/个体组、时间依赖性、测量重复性等...,在数据分割(训练/验证/测试)中。非独立同分布数据的错误分割可能导致数据泄露、错误预期和过于乐观的结果。
通常,对于时间序列预测,应该对训练和验证进行特定的数据拆分(不是随机的,而是采用“时间窗口”样式),以便尊重响应/数据的时间结构依赖性,并且设置中没有数据泄漏:训练中不使用任何“来自未来”的数据,这会导致过于乐观的预测。
一些阅读资源:
https://machinelearningmastery.com/random-forest-for-time-series-forecasting/
https://mindfulmodeler.substack.com/p/how-to-deal-with-non-iid-data-in
希望这个答案能帮助你,
回复:什么时候不应该使用预测筛选?谢谢 Victor_G。我会看看的。