Python - 使用numpy

时间:2017-11-15 09:11:09

标签: python python-3.x numpy

我正在开发功能工程流程,作为机器学习项目的一部分。目前我必须确定是否对某些列进行日志转换。

我开始知道应该对那些具有偏差分布值的列进行日志转换。

现在,我需要澄清一些问题/疑问。

如何在Python中确定特定列值是否属于偏斜分布(右倾斜或左偏斜)?

并且假设我确定了需要应用日志转换的列,日志函数有很多基础,如loge,log10,log2等...... 所以我使用自然日志( ie)loge或log10或其他任何机器学习方法?

如果我没有错,日志转换只能应用于数字变量。这是对的吗?

3 个答案:

答案 0 :(得分:0)

是的,您只能将日志转换应用于数值数据。还有其他方法可以将文本数据转换为数字ex。一热编码。

绘制列的直方图以检查数据中是否存在任何偏斜。箱形图也有助于这方面。

如果您正在使用pandas,那么hist()函数将会有所帮助。尝试使用不同的箱尺寸绘图。 对于日志转换,选择任何不会影响很大的基数。通常使用loge和log10。

答案 1 :(得分:0)

衡量您可以使用{(3}}或scipy.stats.skew

的偏差

您还可以使用scipy.stats.skewtest获取对数正态分布的参数

答案 2 :(得分:0)

您可以使用Pandas DataFrame.skew(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) Pandas skew查看天气特定列的值是否偏斜。

基本上,自然对数转换是优选的,它只能应用除零和负值之外的数值。

正态分布的偏度为零,任何对称数据的偏度都应接近零。偏斜的负值表示向左倾斜的数据,偏斜的正值表示向右倾斜的数据。左倾斜,我们的意思是左尾相对于右尾长。同样,向右倾斜意味着右尾相对于左尾长。