我正在尝试从相对较大的医疗数据集(1 - 疾病,0 - 无疾病)中构建二元分类器。该数据集包含大约 500 名患者,其中 9% 患有该疾病,以及大约 70 个特征(预测变量)。我想试一试:
- 特征选择——减少特征数量
- SMOTE 用于平衡训练数据集。
- 应用分类器
- 应用交叉验证
哪个是最好的分步方法?
特别是我对何时使用特征选择感到两难?如果我在 SMOTE 之前使用它,选择的功能可能会有偏差?但是之前应用它,我有一个不平衡的数据问题。
另外,什么时候进行交叉验证合适?
我正在尝试从相对较大的医疗数据集(1 - 疾病,0 - 无疾病)中构建二元分类器。该数据集包含大约 500 名患者,其中 9% 患有该疾病,以及大约 70 个特征(预测变量)。我想试一试:
哪个是最好的分步方法?
特别是我对何时使用特征选择感到两难?如果我在 SMOTE 之前使用它,选择的功能可能会有偏差?但是之前应用它,我有一个不平衡的数据问题。
另外,什么时候进行交叉验证合适?
本文认为在 SMOTE(Synthetic Minority Oversampling TEchnique)之前进行特征选择是首选,并且至少:
... 在使用 SMOTE 后执行变量选择时应小心谨慎,因为大多数变量选择方法都假定样本是独立的。
使用 SMOTE 对少数类进行过采样违反了独立性假设。
对于您的应用程序,尚不清楚 SMOTE 是否会比 LASSO 或岭回归等标准惩罚方法提供任何优势。此外,请注意将“灵敏度、准确度、精确度、召回率和 F1 分数”作为优化目标。它们隐藏了关于两种错误分类的相对成本的隐含假设。通常最好先为概率开发一个可靠的模型,然后(如果需要分类)考虑相对成本和收益。
交叉验证当然可以用于您的特征选择过程,例如选择 LASSO 的惩罚值(以及因此维护的特征数量)。请注意,任何算法选择的特定特征都可能因样本而异,您应该在继续进行时考虑该问题。
验证模型开发的整个过程,包括特征选择过程,也可以通过交叉验证来完成,或者更好的是,在数据的多个引导样本上重复该过程。