用单一惩罚重新拟合套索回归场景:我使用验证数据来调整我的套索惩罚,现在我想重新拟合我的所有数据(训练+验证),指定优化的惩罚项。
我看不出在通用回归平台中如何做到这一点。这里有什么建议?
预测模型和机器学习回复:以单次惩罚重新拟合套索回归让我再尝试一次。 Lasso/Ridge/Elastic Net 是一种惩罚回归方法,通过最小化残差平方和加上与回归系数大小的函数成比例的惩罚项,将线性模型拟合到数据。 JMP 中的行为是拟合一系列模型,其中惩罚项的权重在网格上变化,并且通过选定的标准选择最佳惩罚。
我的问题是:如果我知道我想使用什么惩罚权重,有没有办法直接用那个惩罚权重拟合新数据? 如果我想用我之前确定的惩罚来拟合更大的数据集并且对再次优化该惩罚权重不感兴趣,这可能很有用。 可以通过将网格点数设置为 1 并根据所需的惩罚权重指定“最小惩罚分数”来实现这一点,但这不起作用(不接受 1 的网格大小)以及如何文档中不清楚将 lambda 惩罚转换为“最小惩罚分数”。
回复:以单次惩罚重新拟合套索回归从本质上讲,这听起来像是您要求使用您选择的模型对观察结果进行评分。 保存 DS 提到的预测公式将显示所有观察结果的预测,包括训练集和验证集。 如果您有兴趣对新观察进行评分,那么您应该将您的预测公式发布到公式库。 然后,当您打开新数据表时,您可以在新表上运行公式脚本。 这将对所有新的观察结果进行评分。
或者,您可以从数据表中剪切预测公式并将其粘贴到新表中的新公式列中。
回复:以单次惩罚重新拟合套索回归我感兴趣的场景是我使用固定数据分区(验证列)并运行惩罚回归(无论套索、脊或弹性网)。 这些为我提供了一个解决方案路径和一个基于验证数据的缩放对数似然的优化模型。 返回的调整参数可用于(快速)使用附加训练数据在调整参数的预先指定值处拟合更新的模型。 有没有办法在不生成整个解决方案路径的情况下运行套索(或脊或弹性网)?
回复:以单次惩罚重新拟合套索回归你好@米特曼,
虽然我不确定实际的底层算法是什么,但对 Lasso 建模进行的调整非常有限。通过 L1 惩罚。 它非常擅长缩小不重要的因素,但如果你在因素和响应之间存在多重共线性,那就不是很好了。 要记住的是,当您使用交叉验证(使用验证列)时,算法会使用它来开始最小化因子的估计值。 这有助于算法将不重要的因素驱动为 0 并简化模型。 如果您重新运行(即使使用相同的网格间距/间距类型和惩罚分数),您最终会得到不同的模型,因为它将使用不同的验证方法来简化模型。 如果您想比较与您的验证列拟合的模型与使用 AICc 或 K-fold 的模型,对于您生成的每个模型,您可以转到拟合旁边的红色热按钮并选择保存列 > 保存预测公式。 然后,您可以比较不同模型对响应的拟合程度,例如在模型比较平台下。
其他一些想法:
1. 您可以考虑使用 Elastic Net,因为它结合了 L1(Lasso)和 L2(Ridge)惩罚方法。 两全其美。
2. 您可能希望对因子的估计值运行一些引导程序或模拟,以确定它们的大小以及它们是否真的重要。 请务必将幅度与估计的标准误差进行比较,以查看误差是否大于估计本身。
3. 如果您正在构建模型,最好在 JMP 中运行其他建模平台以查看哪个模型更适合。 可能是 KNN 或 SVM 或 NN 模型在预测能力方面实际上优于其他模型。 请务必查看其他一些建模平台,例如 SLS、GenLinReg 等。您永远不知道哪种模型最终会胜过其他模型。
4. 如果您使用验证列进行交叉验证,您可能会考虑如何将数据划分为训练和验证,因为这会影响模型性能。
5. 如果您的数据来自 DOE,并且您正在使用 GenReg 平台,根据经验,最好将自己限制在 GenReg 平台中的前五种估计方法。
希望这可以帮助!,
DS