box-cox变换中变换参数取值,box-cox变换和johnson变换区别
概念
1、Box-Cox变换是统计建模中常用的建模方法,主要用于连续响应变量不满足正态分布。
可采用博克斯-考克斯变换。
2、使线性回归模型在满足线性、正态性、独立性和方差的同时不丢失信息。
在博克斯-考克斯转换之前,有必要将数据归一化。
实例
#我们这里是对训练集和测试集一起归一化,也可以分开进行归一化,(分开)这种方式需要建立训练数据和测试数据分布一直的情况下,建议在数据量大的情况下使用。
#绘图显示博克斯-考克斯变换对数据分布影响
cols _ numeric _ left=cols _ numeric[0:13]
cols _ numeric _ right=cols _ numeric[13:]#这里是将特征分为两部分,前13个为第一部分
# # CheckeffectofBox-coxstranformsondistributionsofcontinuovables
列车数据流程=PD。concat([训练数据过程,训练数据[目标]],轴=1)
fcols=6
frows=len(列_数字_左)
plt.figure(figsize=(4*fcols,4*frows))
i=0
forvarincols_numeric_left:
dat=train_data_process[[var, target]].德罗普纳()
i=1
plt.subplot(frows,fcols,I)
sns.distplot(dat[var],fit=stats。norm);
plt.title(var Original )
plt.xlabel( )
i=1
plt.subplot(frows,fcols,I)
_=统计数据。proplot(dat[var],plot=plt)
plt.title(skew= {:4f}).格式(统计。skew(dat[var])) #计算数据集的偏度
plt.xlabel( )
plt.ylabel( )
i=1
plt.subplot(frows,fcols,I)
plt.plot(dat[var],dat[target],.=0.5)
plt.title(corr= {:2f}).格式(np.corrcoef(dat[var],dat[target])[0][1])
i=1
plt.subplot(frows,fcols,I)
trans_var,lambda _ var=stats。box Cox(dat[var].dropna() 1)
trans_var=scale_data(trans_var)
sns.distplot(trans_var,fit=stats。norm);
plt.title(var Tramsformed )
plt.xlabel( )
i=1
plt.subplot(frows,fcols,I)
_=统计数据。proplot(trans _ var,plot=plt)
plt.title(skew= {:4f}).格式(统计。skew(trans _ var)))#归一化后,偏度明显变小,相关性变化不大
plt.xlabel( )
plt.ylabel( )
i=1
plt.subplot(frows,fcols,I)
plt.plot(trans_var,dat[target],.=0.5)
plt.title(corr= {:2f}).格式(np.corrcoef(trans_var,dat[target])[0][1])以上就是大蟒中博克斯-考克斯变换的介绍,希望对大家有所帮助。更多计算机编程语言学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1、戴尔自交第三代电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。