有个软件叫box(python中Box-Cox变换是什么)
导读:概念...
概念
1 、Box-Cox变换是统计建模中常用的建模方法 ,主要用于连续响应变量不满足正态分布 。
可采用Box-Cox变换 。
2 、使线性回归模型在满足线性 、正态性 、独立性和方差的同时不丢失信息 。
在Box-Cox转换之前 ,有必要将数据归一化 。
实例
#我们这里是对训练集和测试集一起归一化 ,也可以分开进行归一化 ,(分开)这种方式需要建立训练数据和测试数据分布一直的情况下 ,建议在数据量大的情况下使用 。 #绘图显示Box-Cox变换对数据分布影响 cols_numeric_left=cols_numeric[0:13] cols_numeric_right=cols_numeric[13:]#这里是将特征分为两部分 ,前13个为第一部分 ##CheckeffectofBox-Coxtransformsondistributionsofcontinuousvariables train_data_process=pd.concat([train_data_process,train_data[target]],axis=1) fcols=6 frows=len(cols_numeric_left) plt.figure(figsize=(4*fcols,4*frows)) i=0 forvarincols_numeric_left: dat=train_data_process[[var,target]].dropna() 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) _=stats.probplot(dat[var],plot=plt) plt.title(skew=+{:.4f}.format(stats.skew(dat[var])))#计算数据集的偏度 plt.xlabel() plt.ylabel() i+=1 plt.subplot(frows,fcols,i) plt.plot(dat[var],dat[target],.,alpha=0.5) plt.title(corr=+{:.2f}.format(np.corrcoef(dat[var],dat[target])[0][1])) i+=1 plt.subplot(frows,fcols,i) trans_var,lambda_var=stats.boxcox(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) _=stats.probplot(trans_var,plot=plt) plt.title(skew=+{:.4f}.format(stats.skew(trans_var)))#归一化后 ,偏度明显变小 ,相关性变化不大 plt.xlabel() plt.ylabel() i+=1 plt.subplot(frows,fcols,i) plt.plot(trans_var,dat[target],.,alpha=0.5) plt.title(corr=+{:.2f}.format(np.corrcoef(trans_var,dat[target])[0][1]))以上就是python中Box-Cox变换的介绍 ,希望对大家有所帮助 。更多Python学习指路:Python基础教程
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!