0

我有两个疑问:

  1. 如果我们的数据框有一个分类问题,其中没有大量特征(列 > 100),并且假设其中 20/30 是高度相关的,并且目标列(y)非常偏向一个类;我们应该首先使用 Imblearn 消除不平衡,还是应该删除高度相关的列?
  2. 在分类问题中,我们应该首先标准化数据还是处理异常值?
4

1 回答 1

1

您的问题没有“真实”的答案——采取的方法很大程度上取决于您的设置、您应用的模型和手头的目标。

类别不平衡的话题已经在别处讨论过(例如这里这里)。

对正类或负类训练示例进行过采样/欠采样的一个正当理由可能是知道正类实例的真实发生率高于(低于)你的训练数据所暗示的。然后,您可能希望应用抽样技术来实现与该先验知识相匹配的正/负类平衡。

虽然没有真正处理标签分布的不平衡,但您的特定设置可能需要为假阳性和假阴性分配不同的成本(例如,将癌症患者错误分类为健康的成本可能高于反之亦然)。您可以通过调整成本函数(例如,假阴性比假阴性产生更高的成本)或在训练后执行某种阈值优化(例如,在交叉验证中达到一定的精度/召回率)来处理这个问题。

假设特征之间没有相关性的模型会出现高度相关特征的问题。例如,如果您的特征空间存在多重共线性问题,则逻辑回归中的参数估计可能会关闭。例如,您可以使用方差膨胀因子 (VIF) 检查是否存在多重共线性。但是,并非所有模型都带有这样的假设,因此根据您的设置,您可能会忽略该问题。

标准化也是如此:这可能不是必需的(例如树分类器),但其他方法可能需要它(例如 PCA)

是否处理异常值是一个难题。首先,您必须定义异常值是什么——它们是人为错误的结果吗?您是否希望在野外看到类似的实例?如果您可以确定您的模型在去除异常值的情况下(在保留验证或测试集上)进行训练时表现更好,那么:当然,去吧。但是,如果您计划将模型应用于可能产生类似异常值的数据流,请保留潜在异常值以进行验证。

于 2020-02-20T11:43:01.720 回答