python boxcox变换_陈小陌博客-box-cox变换基于python的实现--陈小陌

在生活中有很多数据都是类似的符合正态分布,比如一个统计量:每个人的年度消费。按照道理我们想呀,这个应该是符合正态分布的,我们就拿到了数据,正在规划基于满足正态分布的消费数据做一些分类决策树,或者其它的小东西。但是!我们为了课题的严谨性,要检验一下找个数据到底是不是正态分布,结果喜闻乐见,它不满足正态分布。(当然此刻我们可以假装它满足,从认真建模,到瞎编数据系列)我们要对它进行正态分布变换,这个有很多方法,取对数,开方可以百度一下,这里介绍一种BOX—COX变换,也就是经常做数据科学口中的BC变换,这个是一个很好对数据进行正态分布变换的一种方法,根据以下公式:

这里要求出那个系数,才能对数据选择哪种变换,对于求参数有两种方法:1)极大似然估计 2)Bayes方法,下面给出box-cox算法基于python的实现,对于函数stats.boxcox()参数x是list和array列类型都行,很方便。返回值是以元组形式返回,第一个值为列表(经过BC变换的数据),另一个为公式参数。from scipy import stats

import numpy as np

test = np.array(cost_handle)   # 将list转换为array(不转也行)

result = stats.boxcox(test)    # 一行代码box-cox变换

AF_box_cox = result[0]

print(AF_box_cox)

print(result[1])

这里说的很不恰当,有很多不合理的地方,给出参考,可以再看看:

1)box-cox变换:百度百科

2)stats.boxcox():函数说明文档

this over

打赏支付宝打赏

微信打赏

你可能感兴趣的:(python,boxcox变换)