我目前正在研究一个分类问题,并且我有一个偏斜的数字列。我读过很多帖子,人们建议采用对数变换或 boxcox 变换来修复左偏度。
所以我想知道如果我保持原样并继续我的模型构建会发生什么?修复分类问题(knn,逻辑回归)的偏度有什么好处吗?
我目前正在研究一个分类问题,并且我有一个偏斜的数字列。我读过很多帖子,人们建议采用对数变换或 boxcox 变换来修复左偏度。
所以我想知道如果我保持原样并继续我的模型构建会发生什么?修复分类问题(knn,逻辑回归)的偏度有什么好处吗?
有些问题将取决于您的数据和分析方法的特定特征,但一般而言,倾斜的数据(在任一方向上)会降低您的模型描述更“典型”案例的能力,以便处理发生的更罕见的案例取极值。
由于“典型”案例比偏斜数据集中的极端案例更常见,因此您会失去一些您最常看到的案例的精确度,以适应您很少看到的案例。确定所有在 [0,10] 之间的一千个观测值的系数可能比 [0,10] 之间的 990 个观测值和 [1,000, 1,000,000] 之间的 10 个观测值更精确。这可能会导致您的模型总体上不太有用。
“修复”偏度可以提供多种好处,包括使依赖于近似正态分布的数据的分析成为可能/提供更多信息。它还可以产生以合理的规模报告的结果(这非常依赖于情况),并防止极端值(相对于其他预测变量)高估或低估倾斜预测变量对预测分类的影响。
您可以通过训练具有不同数据子集的模型来测试这一点(可以肯定的是)但排除“典型”范围之外的值(尽管您在定义时必须小心),您的数据与倾斜变量分布的变换或重新缩放等。
至于修复它,转换和重新缩放通常是有意义的。但我怎么强调都不为过:
对数转换偏斜变量就是一个很好的例子:
我同意@Upper_Case 的要点很好的回答。我喜欢提出一个强调问题的“机器学习”方面的观点。
对于使用 kNN、逻辑回归、核 SVM 或非线性神经网络的分类任务,我们关注的主要缺点是模型性能下降,例如验证集上的 AUC 得分下降。
当偏度对结果质量的损害难以评估时,通常会研究偏度的其他缺点。 , 接着
换句话说,偏度的损害可以很容易和客观地评估,因此,这些理由不会影响我们的决定,只有性能会。
如果我们仔细看看使用对数转换的理由,当对模型或测试直接使用的最终特征做出一些假设时,它们是正确的。最终特征是原始特征的函数;该功能可以是身份。例如,模型(或测试)可能假设最终特征应该是正常的,或者至少围绕均值对称,或者应该是线性相加的,等等。然后,我们知道(或推测)原始特征特征是左偏的,可以执行对数转换以使最终特征与施加的假设保持一致。
这里一个重要的复杂性是我们没有也不能改变任何原始特征的分布,我们只是创建了一个最终特征(作为原始特征的函数),它具有更符合强加假设的不同分布。
对于使用 kNN、逻辑回归、核 SVM 或非线性神经网络的分类任务,最终特征的分布没有正态性或对称假设,因此这些模型在这方面没有力量。虽然,我们可以在逻辑回归模型中追踪“线性加法”假设的影子,即
但是同样,与模型评估的结果相比,这些理由排在第二位,如果性能受到影响,我们不会进行转换。