为什么我们将偏斜的数据转换为正态分布


15

我正在针对Kaggle(人类模拟的房价内核:高级回归技术上的房价竞争解决方案,遇到了以下部分:

# Transform the skewed numeric features by taking log(feature + 1).
# This will make the features more normal.
from scipy.stats import skew

skewed = train_df_munged[numeric_features].apply(lambda x: skew(x.dropna().astype(float)))
skewed = skewed[skewed > 0.75]
skewed = skewed.index

train_df_munged[skewed] = np.log1p(train_df_munged[skewed])
test_df_munged[skewed] = np.log1p(test_df_munged[skewed])

我不确定将偏斜的分布转换为正态分布的需求。请有人可以详细解释一下:

  1. 为什么在这里这样做?或这有什么帮助?
  2. 这与功能扩展有何不同?
  3. 这是功能设计的必要步骤吗?如果我跳过此步骤,可能会发生什么?

2
因此,残差是高斯的(可以通过求平均值来抵消),方差是稳定的,并为优化器提供条件以加速收敛。zh.wikipedia.org/wiki/Power_transform
Emre

Answers:


12

您可能需要解释您的系数。也就是说,要能说这样的话:“如果我增加我的变量的1,那么,平均和所有其他条件相同,ÿ应通过增加β 1 ”。X1Yβ1

为了您的系数是可解释的,线性回归假设了一堆东西。

其中之一是没有多重共线性。也就是说,您的变量不应相互关联。X

另一个是同方的。您提交的模型应该有相同的方差的错误,即应确保线性回归不为低值使小的错误和值较高的大错误X。换句话说,你预测什么区别Ÿ与真实值Ÿ应该是恒定的。您可以通过确保Y遵循高斯分布来确保。(证明是高度数学的。)XXY^YY

根据您的数据,您可以将其设为高斯型。典型的转换采用逆,对数或平方根。当然,还有许多其他因素,这完全取决于您的数据。您必须查看数据,然后进行直方图或运行正态性检验(例如Shapiro-Wilk检验)。

这些都是建立无偏估计量的技术。我认为这与其他人所说的融合没有任何关系(有时您可能还想规范化数据,但这是一个不同的话题)。

如果要解释系数或要在模型中使用统计检验,则遵循线性回归假设非常重要。否则,算了吧。

y^y2ynormalize


3

偏斜的数据通过加一(归一化,以便未定义为0的对数将零转换为1)进行归一化,并采用自然对数。可以使用诸如平方根或倒数或对数的转换技术对数据进行几乎标准化。现在,为什么需要它。实际上,数据中的许多算法都假设数据科学是正常的,并以此为前提计算各种统计数据。因此,数据越接近正常值,就越符合假设。


3
这里的算法是梯度提升和套索回归。我认为,如果可以显示它与这两种算法的相关性(或不相关性),则该答案将更为有用。
oW_

从我的角度来看,当训练模型是线性回归还是决策树(鲁棒到离群值)时,偏斜数据使模型难以在数据中找到合适的模式是我们必须制作偏斜数据的原因分为正态或高斯态。
Goldi Rana

1

因为数据科学最终只是统计,所以统计的关键假设之一是中央极限定理。因此,完成此步骤是因为某些后续步骤使用了依赖于此的统计技术。


1
一个定理不是一个假设。实际上,中心极限定理确保即使各个随机变量不是正态分布,独立随机变量的平均值也近似为正态分布。
Elias Strehle,

1
这是推理中极有缺陷的一环。就像是:“-我见过人们在吃苹果之前先去皮。为什么?-哦,那是因为苹果是水果,而其中的主要水果是橙色,而你总是剥橙!”。
ayorgo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.