如何获得更好的 AUC 分数? (和累积提升)

问题描述 投票:0回答:1

我有一个包含 600k 记录和 173 个特征的数据集,专注于二元分类。班级比例约为 98.7:1.3(1.3% 目标=1)。

目前,我正在尝试提高模型的性能,其 AUC 为 73%。此外,我对前 2% 的累积提升是 10.41,对前 5% 的累积提升是 5.92。由于我只会针对正面预测分数的前 2-5%,因此我并不特别关心混淆矩阵阈值或改进矩阵值(FP、FN)。

我通过转换(交互,^2)和手动数学计算执行了特征工程。

尽管如此,在训练了没有工程特征的模型后,AUC 分数大致相同,没有我的工程特征的模型中的累积提升略高。我使用了一个自动特征选择工具,使用 RFE 和 XGBoost 来决定所选的特征。

我应该注意到,我训练了模型,该模型具有 3 个周期的下采样数据集(3 个周期中每个周期 40k),分类比为 93.5:6.5(6.5% 目标 = 1),并使用常规的第 4 个周期的数据验证数据集(原始 1.3% tareget=1 率)。我使用 H20 来训练我的模型(选择 XGBoost)。

如何提高我的模型分数和模型质量?我知道模型训练涉及插补,但我应该在预处理/清理阶段尝试使用 SimpleImputer、IterativeImputer 或/和 KNNImputer 吗?这会改善我的模型吗?

我尝试使用或不使用我的工程特征重新训练多个模型,并返回到第 1 步并创建更多变量(工程)以尝试帮助我的 AUC 和提升分数。

machine-learning data-science classification data-modeling auc
1个回答
0
投票

为了提高模型分数和整体质量,请考虑在预处理阶段尝试不同的插补技术。 SimpleImputer 用均值或中位数等常量替换缺失值,是适合随机缺失数据的简单选项。 IterativeImputer 捕获数据中更复杂的关系,使其适合结构化模式。 KNNImputer 依赖于最近邻居,对于相似实例共享相似值的数据集非常有效。单独评估每种方法,考虑 AUC、精度和召回等指标,并执行交叉验证以确保鲁棒性。除了尝试以下几点之外,我还可以向您保证它肯定会有所帮助。

  1. 考虑合成少数类实例的过采样方法,例如 SMOTE 或 ADASYN。您的模型可以从成本敏感的学习中受益更多,这会以更大的惩罚来惩罚重要少数类的错误分类。

  2. 看看随机森林、LightGBM,甚至神经网络(可能带有类别权重),看看哪种算法最适合您的特定数据集。现在,使用集成方法(例如堆叠这些不同模型的预测)以获得更好的结果。

  3. 如果特征高度相关,PCA 或 LDA 等降维技术可以帮助简化模型,而不会丢失重要信息。

© www.soinside.com 2019 - 2024. All rights reserved.