变量选择和 Bootstrap 森林你好,
我进行了 Bootstrap 森林分析,得到了 230 个特征的分类结果,其中许多特征高度相关。 我的训练集(AUC 0.98)和验证集(0.68)之间的性能存在巨大差异。 由于数据是高维度的并且许多变量是相关的,因此需要减少变量。 我可以为此目的将 GenReg 与 Lasso 或其他惩罚技术结合使用吗? 我的数据并不是真正的正态分布。 这就是我更喜欢使用树模型的原因之一。
提前致谢,
鲁
预测建模和机器学习回复:变量选择和 Bootstrap 森林对我来说,拥有 1050 个案例和 230 个特征就会导致过度拟合。训练数据和验证数据的性能之间的巨大差异符合我对过度拟合的预期。根据我的经验,JMP 模型平台中的默认设置通常可以很好地避免该问题,但也许您的数据是一个极端情况。您可以尝试以某种方式强制树模型以避免过度拟合(例如,您可以提高最小分割大小以强制使用更简单的树)。最后,我确实认为您需要以某种方式减少功能集 - 关键是找到可能是最重要的功能 - 并且对您拥有正确的功能集(之间的相关性)有一定的信心230 个功能可能会让这变得困难)。您还可以尝试一些主成分分析来减少特征数量。
回复:变量选择和 Bootstrap 森林@鲁:当我谈到对分类响应级别的响应进行分层时,我并不是指训练、验证、测试数据集大小的百分比分割。 我建议的是,当您选择响应列作为分层列时,然后在“选择方法”窗口下,选择“分层验证列”。 这迫使您在训练、验证和可选的测试集中尽可能接近每个级别的分类响应的比例。 有时,纯随机选择的小魔怪会在整个响应的水平上产生显着的不平衡,从而使模型验证可能更加困难。 这是更多文档:
https://www.jmp.com/support/help/en/15.2/#page/jmp/launch-the-make-validation-column-platform.shtml
至于偏最小二乘法的优点,我不确定是否有任何明显的优点。 但 PLS 非常擅长的一件事是为多重共线性预测变量创建潜在变量,这些变量又可用于建模目的。 因此,与套索、弹性网络或任何基于树的方法相比,这只是对预测变量的不同数学处理。 请参阅 JMP 文档了解此方法:
https://www.jmp.com/support/help/en/15.2/#page/jmp/partial-least-squares-models.shtml
我的一般建议是尝试许多不同的建模方法......线性和非线性类型,包括提到的那些@马克贝利,然后将每个模型的结果导出到 Formula Depot 或模型比较平台,看看哪个模型效果最好。
没有任何一种方法可以解决所有问题。 所以尝试很多,希望你能找到有效的方法。
回复:变量选择和 Bootstrap 森林您还可以使用 Predictor Screening 平台。 它使用引导森林来收集变量贡献,这可用于为模型选择变量。 引导森林在很大程度上应该避免共线性。
回复:变量选择和 Bootstrap 森林感谢您的回复,
数据集的大小为 1050 个案例,其中有 1 个分类 Y(稍微不平衡的 45/55)。我提到的 230 个特征是变量 (X),而不是响应。 其中一些是绝对的,大多数是数字的。 我使用分层训练/验证/测试方法(60/20/20)方法进行模型训练和验证。
与 Lasso 和 Elastic Net 相比,PLS 的优势是什么?
问候,
鲁
回复:变量选择和 Bootstrap 森林当预测变量之间存在多重共线性时,套索和弹性网络方法可能会很有用。 我不是 100% 清楚的是,当您说“...230 个功能...”时,这些是响应的分类级别吗? 或者你的预测变量集?
您可能需要阅读有关这些方法的 JMP Pro 文档:
https://www.jmp.com/support/help/en/15.2/#page/jmp/overview-of-the-generalized-regression-personality.shtml#ww349714
您可能还想尝试偏最小二乘法。
您没有提及数据集的大小。 对于分类响应,有时小数据集可能对训练、验证和可选的测试数据集的结构非常敏感。 您是否根据响应的级别对每个人进行了分层? 这是普遍认可的创建训练、验证和测试数据集的最佳实践。