当被要求找到最重要的功能时要优化什么

数据挖掘 分类 xgboost 预测重要性
2022-02-23 06:22:44

我有一个二元分类问题,假设人们可以购买或不购买某种产品。现在与标准预测任务不同,我只想找出哪些特征对人们的购买决定最重要。

我应该使用哪个指标来优化算法?最大限度地提高样本外的准确性,例如我何时对做出最佳预测感兴趣?或者最大化拟合并且不关心过度拟合?两者的混合物?

我正在使用xgboost.

2个回答

理想情况下,您应该以与选择最佳模型超参数相同的方式选择特征,并使用验证集。

您对这些功能如何处理看不见的数据感兴趣,而不是您的训练数据。

根据您的特征选择算法,特征搜索将难以处理更大的数据。朴素的特征选择是 O(2^n) 并且某些模型超参数可能取决于您选择的特征。

一种潜在的方法:

  1. 使用大部分数据构建尽可能准确的模型:使用交叉验证进行参数调整。准确性应在样本外数据上进行测试。或者使用默认xgboost参数并继续执行步骤 2
  2. 使用调整参数评估特征重要性:在随机数据子集上构建多个模型(在每个模型中使用来自 (1) 的同一组调整参数)并提取特征重要性。您在 bagging 中越积极,您需要构建的模型就越多。那就是:更小的子样本 -> 更多的模型。
  3. 组合/聚合来自模型的特征重要性度量以获得最重要的特征。