ML 项目 - 实现 2 个目标

数据挖掘 机器学习 深度学习 数据挖掘 预测建模 机器学习模型
2022-02-20 19:46:38

我有一个包含 5K 条记录的数据集,专注于二进制分类。我在这里发布它是为了寻求您对项目方法的建议

目前我的目标是

1) 运行 statsmodel 逻辑回归以找出影响结果的风险因素

2)然后建立一个基于最佳特征的预测模型(可能包括也可能不包括风险因素)。因为您可能知道并非所有重要变量都是好的预测变量。

虽然我可以使用scikit-learn逻辑回归来构建预测模型,但我计划使用它,Xgboost因为它在我的数据集中提供了更好的性能(非线性数据略微不平衡)

我做第一步是因为我必须找出影响结果的风险因素是什么,所以我正在这样做。(例如:影响客户拖欠还款的风险因素)您知道我们从哪里获得p-values并发现重大风险因素。

在第二步中,我建立了预测模型,因为我通过运行建立的模型意识到并非所有风险因素都是好的预测因子。所以最后,我包含了一组新的特性,这些特性有助于更好地预测以及风险因素

你认为我把这个作为两个目标的问题是正确的吗?

你认为我正在做的事情是多余的还是朝着正确的方向前进?

您认为没有理由单独使用 2 种算法吗?

您有什么建议或技巧可以轻松实现我的目标吗?

1个回答

Xgboost 为您进行功能选择。如果您想报告某些特征对预测的价值,请打印特征重要性。然而,那些只会告诉你“功能x1对于预测结果、特征非常重要x2对于预测结果等几乎没有用处。”。 来源 要获得具有 p 值的风险因素,您需要一个更可解释的模型。例如,您必须使用线性分类。然后您可以做出类似“高x1与积极的结果相关”。

如果您真的只想使用特征的子集,请在验证数据集上训练 Xgboost 模型并丢弃重要性较低的特征。然后在剩余的训练集上运行具有剩余特征的 Xgboost 模型。

您需要考虑您想要什么:您是否想解释观察结果并从数据中提取明确的知识并尝试找到可能的因果关系?使用线性方法。您想预测新患者数据的结果吗?使用梯度提升。你显然可以同时做这两个。