左偏分布的缺点是什么?

数据挖掘 机器学习 Python
2021-09-30 11:03:43

我目前正在研究一个分类问题,并且我有一个偏斜的数字列。我读过很多帖子,人们建议采用对数变换或 boxcox 变换来修复左偏度。

所以我想知道如果我保持原样并继续我的模型构建会发生什么?修复分类问题(knn,逻辑回归)的偏度有什么好处吗?

2个回答

有些问题将取决于您的数据和分析方法的特定特征,但一般而言,倾斜的数据(在任一方向上)会降低您的模型描述更“典型”案例的能力,以便处理发生的更罕见的案例取极值。

由于“典型”案例比偏斜数据集中的极端案例更常见,因此您会失去一些您最常看到的案例的精确度,以适应您很少看到的案例。确定所有在 [0,10] 之间的一千个观测值的系数可能比 [0,10] 之间的 990 个观测值和 [1,000, 1,000,000] 之间的 10 个观测值更精确。这可能会导致您的模型总体上不太有用。

“修复”偏度可以提供多种好处,包括使依赖于近似正态分布的数据的分析成为可能/提供更多信息。它还可以产生以合理的规模报告的结果(这非常依赖于情况),并防止极端值(相对于其他预测变量)高估或低估倾斜预测变量对预测分类的影响。

您可以通过训练具有不同数据子集的模型来测试这一点(可以肯定的是)但排除“典型”范围之外的值(尽管您在定义时必须小心),您的数据与倾斜变量分布的变换或重新缩放等。

至于修复它,转换和重新缩放通常是有意义的。但我怎么强调都不为过:

摆弄变量及其分布应该遵循这些变量的属性,而不是您建模的便利性。

对数转换偏斜变量就是一个很好的例子:

  • 如果你真的认为一个变量在几何尺度上运行,并且你希望你的模型在算术尺度上运行,那么对数变换会很有意义。
  • 如果您认为该变量在算术尺度上运行,但您发现它的分布不方便,并且认为对数变换会产生更方便的分布,那么变换可能是有意义的。它将改变模型的使用和解释方式,通常会使模型更密集,更难解释清楚,但这可能值得,也可能不值得。例如,如果您获取数字结果的对数和数字预测变量的对数,则必须将结果解释为它们之间的弹性,这可能很难使用,而且通常不是所希望的。
  • 如果您认为变量需要对数转换,但它有很多值为 0 的观察值,那么对数转换对您来说并不是一个真正的选择,无论它是否方便。(向 0 观察值添加一个“小值”会导致很多问题——取 1-10 的对数,然后是 0.0 到 1.0)。

我同意@Upper_Case 的要点很好的回答。我喜欢提出一个强调问题的“机器学习”方面的观点。

对于使用 kNN、逻辑回归、核 SVM 或非线性神经网络的分类任务,我们关注的主要缺点是模型性能下降,例如验证集上的 AUC 得分下降。

当偏度对结果质量的损害难以评估时,通常会研究偏度的其他缺点。 , 接着

  1. 如果性能下降,我们不会转型,
  2. 如果性能有所改善,我们就会转型。

换句话说,偏度的损害可以很容易和客观地评估,因此,这些理由不会影响我们的决定,只有性能会。

如果我们仔细看看使用对数转换的理由,当对模型或测试直接使用的最终特征做出一些假设时,它们是正确的。最终特征是原始特征的函数;该功能可以是身份。例如,模型(或测试)可能假设最终特征应该是正常的,或者至少围绕均值对称,或者应该是线性相加的,等等。然后,我们知道(或推测)原始特征特征是左偏的,可以执行对数转换以使最终特征与施加的假设保持一致。

这里一个重要的复杂性是我们没有也不能改变任何原始特征的分布,我们只是创建了一个最终特征(作为原始特征的函数),它具有更符合强加假设的不同分布。

对于使用 kNN、逻辑回归、核 SVM 或非线性神经网络的分类任务,最终特征的分布没有正态性或对称假设,因此这些模型在这方面没有力量。虽然,我们可以在逻辑回归模型中追踪“线性加法”假设的影子,即

P(y=1|x)=11+e(w1x1+..+wdxd)
在神经网络中用于第一层特征的加权和,即
yi=f(Wi,.x+b)=f(Wi,1x1+Wi,2x2+...+b)
我说“阴影”是因为目标变量不是直接对最终特征进行线性加法,加法会经过一个或多个非线性变换,这可以使这些模型对违反这一假设更加稳健。另一方面,线性加法假设在 kNN 或 kernelSVM 中不存在,因为它们使用样本-样本距离而不是特征交互。

但是同样,与模型评估的结果相比,这些理由排在第二位,如果性能受到影响,我们不会进行转换。