在阅读了很多关于分类任务中类不平衡的内容后,我想知道回归任务中数据不平衡的方法是什么。
特别是, - 检查它的程序是什么(例如在分类中,我们会检查所有类是否具有相同的训练示例) - 有哪些可能的方法来解决它?
在阅读了很多关于分类任务中类不平衡的内容后,我想知道回归任务中数据不平衡的方法是什么。
特别是, - 检查它的程序是什么(例如在分类中,我们会检查所有类是否具有相同的训练示例) - 有哪些可能的方法来解决它?
在回归框架中,通常不会谈论(类)不平衡。在这种情况下,它是关于分布(主要是因变量)。一个分布有几个时刻。期望值(第 1 次)、方差(第 2 次)、偏度(第 3 次)和峰度(第 4 次)。它们共同定义了分布的外观。
通常,正态分布适用于回归。您还可以测试正态性。正如其他人所提到的,您可以绘制(经验)概率密度函数。另一个有用的东西是箱线图。你可以看看那些时刻。
R 示例(偏态分布):
library(sn)
library(moments)
set.seed(12)
d1=rsn(n=10000, xi=1, omega=5, alpha=100, tau=0.5, dp=NULL)
plot(density(d1))
boxplot(d1)
skewness(d1) # 0 for normal
kurtosis(d1) # 3 for normal
这产生:
> skewness(d1) # 0 for normal
[1] 0.8130714
> kurtosis(d1) # 3 for normal
[1] 3.412369
概率密度函数在右侧显示一个“尾巴”(正偏度/右偏分布)。
箱线图还表明分布中有一些“异常高”的值。
R示例(正态分布):
正常的程序相同...
d2=rnorm(10000, 3, 2)
plot(density(d2))
boxplot(d2)
skewness(d2) # 0 for normal
kurtosis(d2) # 3 for normal
在这种情况下,密度函数和箱线图看起来更加“和谐”。
> skewness(d2) # 0 for normal
[1] 0.002732919
> kurtosis(d2) # 3 for normal
[1] 2.947005
你能用非正态分布做什么?
对于偏斜/非正态分布,您经常会从回归模型中得到错误的预测,尤其是在发现“异常低/高”值的情况下。例如看这篇文章。解决方案通常是对数据进行某种线性变换。这就是为什么在预测建模中标准化数据通常是一个好主意的原因之一。也可以尝试其他线性变换,例如取对数。然而,没有解决问题的“灵丹妙药”。
线性回归中倾斜数据的另一个后果可能是异方差性,这会导致不可靠的标准误差、p 值和置信带。请参阅此帖子进行讨论。
检查数据不平衡的一种简单方法是绘制不同输出参数的直方图。这很容易显示不平衡。
请记住,远离均值的值很可能会被低估,这仅仅是因为您的样本数量有限,并且它们只能覆盖这么多的输出参数空间,特别是如果您有一个先验无限输出参数空间。
另请参阅https://stats.stackexchange.com/questions/30162/sampling-for-imbalanced-data-in-regression,了解遇到不平衡的一些处理方法。