python中Box-Cox变换是什么
- 更新时间:2021-06-15 13:52:36
- 编辑:须素莉
给网友们整理相关的编程文章,网友巢昂然根据主题投稿了本篇教程内容,涉及到python、Box-Cox变换相关内容,已被706网友关注,下面的电子资料对本篇知识点有更加详尽的解释。
参考资料
- 《Python贝叶斯分析》源码实例 配套资源 / 5.57 MB / [阿根廷] 奥斯瓦尔多·马丁(Osval 推荐度:
- 《精通Python自然语言处理》配套资源 配套资源 / 222.83 KB / [印度] Deepti Chopra, 推荐度:
- Python渗透测试编程技术:方法与实践 PDF 电子书 / 167.2 MB / 李华峰 推荐度:
- 《Python机器学习(原书第3版)》配图,源码 配套资源 / 139.8 MB / [美] 塞巴斯蒂安·拉施卡(Sebastian Raschka) 瓦希德·米尔贾利利(Vahid Mirjalili) 推荐度:
- python学生信息管理系统 / 52 KB / 码小辫 推荐度:
正文内容
无意中在网上看到《python中Box-Cox变换是什么》,好久没看到这么好的Py技术类文章,重新排版了一下发到这里,为了大家阅读方便。
1、概念
Box-Cox变换是统计建模中常用的建模方法,主要用于连续响应变量不满足正态分布时,可采用Box-Cox变换,使线性回归模型在满足线性、正态性、独立性和方差的同时不丢失信息。在Box-Cox转换之前,有必要将数据归一化。
2、实例
#我们这里是对训练集和测试集一起归一化,也可以分开进行归一化,(分开)这种方式需要建立训练数据和测试数据分布一直的情况下,建议在数据量大的情况下使用。 # 绘图显示Box-Cox变换对数据分布影响 cols_numeric_left = cols_numeric[0:13] cols_numeric_right = cols_numeric[13:] #这里是将特征分为两部分,前13个为第一部分 ## Check effect of Box-Cox transforms on distributions of continuous variables 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 for var in cols_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基础教程
相关教程
-
python定时器每天订时执行的实例方法
今天小编就为大家分享一篇python 定时器,实现每天凌晨3点执行的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2019-08-29
-
python怎么改shell界面的背景
python改背景:打开idle界面,选择界面上方options选项选择其中configureidle选项,弹出设置界面,在设置界面就可以对背景和字体等进行设置。
发布时间:2019-06-27