适用于不平衡数据的套索逻辑回归?
Lasso Logistic Regression suitable for imbalanced data?
我正在通过套索正则化逻辑回归分析来自 UCI 机器学习存储库的 Secom 数据集,但结果很糟糕。
https://archive.ics.uci.edu/ml/datasets/SECOM
特点:
- 1546 个数据样本,具有 590 个数字属性
- 106个阳性样本(生产失败)
目标是准确预测正class,同时进行特征选择。
我使用 R 中的 glmnet 包通过 10 折交叉验证优化 lambda。但结果很糟糕,因为该模型倾向于将所有测试样本分配给一个 class。
这个数据集的模型类型不对吗?
使用不平衡 classes 进行预测可能是一个非常难以解决的问题。值得庆幸的是,有大量关于如何解决此类问题的参考书目。有一个特别适合我。它涉及使用上采样 and/or 下采样技术:
下采样:随机对训练集中的所有 class 进行子集化,以便它们的 class 频率匹配最不普遍的 class。例如,假设80%的训练集样本在第一个class,剩下的20%在第二个class。下采样会随机抽取第一个 class 与第二个 class 大小相同(这样只有总训练集的 40% 用于拟合模型)。插入符号包含执行此操作的函数 (downSample)。
上采样:随机采样(有放回)少数 class 与大多数 class 大小相同。插入符号包含执行此操作的函数 (upSample)。
混合方法:SMOTE 和 ROSE 等技术对大多数 class 进行下采样,并在少数 class 中合成新数据点。有两个包(DMwR 和 ROSE)实现了这些过程。
我从这份 caret's 文档中提取了上述要点。 post 包含有关上述每个要点和 R 代码的示例。在根据上述技术转换数据后,您应该能够使用套索逻辑回归并获得更好的结果。
我正在通过套索正则化逻辑回归分析来自 UCI 机器学习存储库的 Secom 数据集,但结果很糟糕。
https://archive.ics.uci.edu/ml/datasets/SECOM
特点:
- 1546 个数据样本,具有 590 个数字属性
- 106个阳性样本(生产失败)
目标是准确预测正class,同时进行特征选择。
我使用 R 中的 glmnet 包通过 10 折交叉验证优化 lambda。但结果很糟糕,因为该模型倾向于将所有测试样本分配给一个 class。
这个数据集的模型类型不对吗?
使用不平衡 classes 进行预测可能是一个非常难以解决的问题。值得庆幸的是,有大量关于如何解决此类问题的参考书目。有一个特别适合我。它涉及使用上采样 and/or 下采样技术:
下采样:随机对训练集中的所有 class 进行子集化,以便它们的 class 频率匹配最不普遍的 class。例如,假设80%的训练集样本在第一个class,剩下的20%在第二个class。下采样会随机抽取第一个 class 与第二个 class 大小相同(这样只有总训练集的 40% 用于拟合模型)。插入符号包含执行此操作的函数 (downSample)。
上采样:随机采样(有放回)少数 class 与大多数 class 大小相同。插入符号包含执行此操作的函数 (upSample)。
混合方法:SMOTE 和 ROSE 等技术对大多数 class 进行下采样,并在少数 class 中合成新数据点。有两个包(DMwR 和 ROSE)实现了这些过程。
我从这份 caret's 文档中提取了上述要点。 post 包含有关上述每个要点和 R 代码的示例。在根据上述技术转换数据后,您应该能够使用套索逻辑回归并获得更好的结果。