SKEWNESS

      在〈SKEWNESS〉中尚無留言

Skewness[ˋskjunɪs] 稱為偏度,這是分析離群值的重要演算法,屬於特徵工程的一種。就是在眾多的特徵中,將有問題特徵挑出來,再進行後續的處理。後續怎麼處理呢? 方法可多著了,比如用 log 拉近,也可用平方根,三次方根,或者更絕的就是直接去除。

至於 Skewness 怎麼計算呢,請放慢腳步,看看底下的說明。

Seaborn位置分佈

上一章的 波士頓房價預測,可以看出 LSTAT 的值呈現如下分佈

import pandas as pd
import seaborn as sns
import pylab as plt

display=pd.options.display
display.max_columns=None
display.max_rows=None
display.width=None
display.max_colwidth=None
df=pd.read_excel("boston.xlsx", sheet_name='Sheet1',index_col=0, keep_default_na=False)
lstat=df['LSTAT']
skew=round(lstat.skew(),2)
sns.histplot(lstat, kde=True)
plt.title(f'skew:{skew}')
plt.show()

整個分佈圖中,窮人的比例大都集中在 10%~20% 左右,但有著極少的數量介於30%-36%之間,這些少數的數量就是所謂的離群值,也就是異常的地方。

上面的代碼中, lstat.skew()就是計算偏度值,其值為 0.91。此值正數表示整個分佈重心在邊左,然後向右邊有零星的異常值。負數表示重心在右邊,然後左邊有零星的異常值。當然最好的資料 skew 為0。

修正Skewness

理論上(假設) skew 值愈接近 0 ,讓整個重心愈靠近中心,所預測出來的值就會更準確。所以我們先修正skew, 再來驗証預測的分數是否會提高。

修正 skew 有許多方法,目前我們將 LSTAT 開立方根看看 skew 的值是否有接近 0

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *