新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中Box-Cox變換是什么
概念

1、Box-Cox變換是統(tǒng)計(jì)建模中常用的建模方法,主要用于連續(xù)響應(yīng)變量不滿足正態(tài)分布。
可采用Box-Cox變換。
2、使線性回歸模型在滿足線性、正態(tài)性、獨(dú)立性和方差的同時(shí)不丟失信息。
在Box-Cox轉(zhuǎn)換之前,有必要將數(shù)據(jù)歸一化。
實(shí)例
#我們這里是對(duì)訓(xùn)練集和測(cè)試集一起歸一化,也可以分開進(jìn)行歸一化,(分開)這種方式需要建立訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)分布一直的情況下,建議在數(shù)據(jù)量大的情況下使用。
# 繪圖顯示Box-Cox變換對(duì)數(shù)據(jù)分布影響
cols_numeric_left = cols_numeric[0:13]
cols_numeric_right = cols_numeric[13:] #這里是將特征分為兩部分,前13個(gè)為第一部分
## 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]))) #計(jì)算數(shù)據(jù)集的偏度
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))) #歸一化后,偏度明顯變小,相關(guān)性變化不大
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變換的介紹,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
文章名稱:創(chuàng)新互聯(lián)Python教程:python中Box-Cox變換是什么
轉(zhuǎn)載來于:http://m.fisionsoft.com.cn/article/dhpjpis.html


咨詢
建站咨詢
