为什么日志转换不使数据标准化?

数据挖掘 Python 预处理
2021-09-17 06:28:14

有一些倾斜的特征,如下图所示。我试图暗示对名为vBMD(mgHA/cm3). 我运行以下代码

分布图

将 numpy 导入为 np

将熊猫导入为 pd

从 sklearn.preprocessing 导入 MinMaxScaler

df=pd.read_csv("Data.csv")

scaler=MinMaxScaler(feature_range=(0,1))

df['vBMD (mgHA/cm3)']=scaler.fit_transform(np.array(df['vBMD (mgHA/cm3)']).reshape(-1,1))

df['vBMD (mgHA/cm3)']=np.log(np.array(df['vBMD (mgHA/cm3)']))

转换后,我得到了以下结果。 改造后

当我在等待该功能被规范化时,它的偏度增加了。因此,我做错了什么?

1个回答

对数变换仅导致对数正态分布的正态分布并非所有分布都是对数正态分布,这意味着它们在对数转换后不会变为正态分布。

编辑:

正如您所评论的,如果您尝试将任意分布转换为正态分布,则可以使用QuantileTransformer之类的方法。但请注意,这些转换通过更改(破坏)原始数据中的一些信息来使分布正常化。