机器学习算法中,一些算法要求数据符合正态分布,但是对于一些标签和特征来说,分布不一定符合正态分布,这个要怎么处理呢?
一个现在比较常见的方式是将数据进行Log变换,即取对数,这样可以使得数据在一定程度上符合正态分布的特征。
效果如下图所示:
(转换前)
(转换后)
计算偏度较大的features
偏度,是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。偏度亦称偏态,偏态系数。
其计算公式为:
在python中用skew()计算特征分布的偏度,
#log transform skewed numeric features:
#找出df中数值型的变量
numeric_feats = all_data.dtypes[all_data.dtypes != 'object'].index
skewed_feats = all_data[numeric_feats].apply(lambda x: skew(x.dropna()))
#compute skew