我们是否允许通过创建对数变换来变换连续目标变量以获得正态分布?

数据挖掘 机器学习 Python 数据 转型
2022-02-15 14:11:20

以下代码给出了转换前的目标变量 Item_Outlet_Sales 和转换后的 Item_Outlet_Sales_log

#treat extreme values in Item_Outlet_Sales
train['Item_Outlet_Sales_log'] = np.log(train.Item_Outlet_Sales)
test['Item_Outlet_Sales_log'] = np.log(test.Item_Outlet_Sales)

plt.figure(1)
plt.subplot(121)
sns.distplot(train.Item_Outlet_Sales)
sns.distplot(test.Item_Outlet_Sales);
plt.subplot(122)
sns.distplot(train.Item_Outlet_Sales_log)
sns.distplot(test.Item_Outlet_Sales_log);

在此处输入图像描述

然后使用新的目标变量 (Outlet_Item_Sales):

#creating dummies for the training dataset
X = train.drop('Item_Outlet_Sales', 1) #drop the log target column
y = train.Item_Outlet_Sales_log

X = pd.get_dummies(X)
train = pd.get_dummies(temp_train)
1个回答

如果您的目标是将非正常数据转换为看起来更正常/高斯的数据 - 请在此处尝试 Box-Cox 变换。

它是一系列转换,可查看您的数据 - 并提供最佳转换。