【问题标题】:Method to choose variable for model为模型选择变量的方法
【发布时间】:2022-01-18 08:02:52
【问题描述】:

我有 200 万人的人口和 700 个变量(有许多 null、零或 -9999),我为此开发了一个 python 模型,其工作原理如下

我生成了整个人口和变量的数据框

我取出不需要的变量(例如ID,姓名)

我对数据进行分区并用ks_2samp (scipy.stats)计算其指标,然后过滤那些指标非常低的指标(roc,ks)

然后,我取所有变量的相关性并再次过滤。

在此之后,我使用 Xgboost 生成模型。使用shap.TreeExplainer,我得到了最终留在我的模型中的所有变量的重要性(大约 90 个变量)

虽然我减少了变量的数量,但还是太多了。有谁知道有什么方法可以继续删除变量?我的想法是获取多达 30 个变量。

【问题讨论】:

    标签: python python-3.x xgboost roc


    【解决方案1】:

    您可以使用函数找到具有高精度且特征最少的最佳模型。

    伪代码

    1. 创建具有特征 n 的模型。 2.例如测量模型的目标或准确性。 3. 保存准确性和使用的功能。 4. 如果特征数量只有 30 个,则转到第 8 步。 5. 获取特征重要性。 6. 丢弃价值最低的特征 7. 转到步骤 1。 8.显示保存的准确性和功能并选择您想要的, 比如精度高但特征更多,或者精度不那么差但特征更少。

    您还可以使用optuna 或其他超参数调谐器。它将尝试通过准确性(或您想要的其他目标)找到最佳模型,确定要使用哪些特征以及要使用多少特征。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2019-11-20
      • 2022-10-13
      • 2017-06-09
      • 1970-01-01
      相关资源
      最近更新 更多