logo
Loading...

AMT_INCOME_TOTAL欄位畫直方圖問題 - Cupoy

f_app_train = os.path.join(dir_data, 'application_...

直方圖

AMT_INCOME_TOTAL欄位畫直方圖問題

2020/06/13 下午 10:42
機器學習共學討論版
Mina
觀看數:7
回答數:3
收藏數:0
直方圖

f_app_train = os.path.join(dir_data, 'application_train.csv')

app_train = pd.read_csv(f_app_train)


app_train.head(1000).hist(column="AMT_INCOME_TOTAL",bins=100)

app_train.hist(column="AMT_INCOME_TOTAL",bins=100)

您好,想請問一下,我在畫 AMT_INCOME_TOTAL 這個欄位的時候,發現好像有些問題,

如上圖,只取前1000筆資料的時候,直方圖以較正常的方式呈現。

而當我取所有的資料,畫取直方圖時,圖形上看起來只剩一條線。


目前猜測可能是"該欄位的值"分布較廣的原因,想請問如果遇到這種狀況,要如何讓直方圖以較正常的方式顯示呢?


我自己有試了一下之前作業的 np.log1p 函式,看起來有比較正常(如下圖)。請問正常業界也是這樣處理資料的可視化嗎? 還是是否有其他方式可以解決呢?


test = np.log1p(app_train['AMT_INCOME_TOTAL'])

test.hist(bins=100)

回答列表

  • 2020/06/14 下午 06:26
    Yang Wang
    贊同數:1
    不贊同數:0
    留言數:1

    簡單來說,數據具有偏態的情況下,都會使用數據變換 (data transformation)。 與正態相對,這種機率分布左右不對稱的情形被稱為偏態 (skewness)。 範例中 AMT_INCOME_TOTAL 的圖稱為右偏 (right-skewed)。 將數據進行 log transform 就可以消除偏態,去除偏態目的在於讓資料更接近常態分布,左右對稱、平均值更具有代表性。

  • 2020/06/16 上午 01:12
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:1

    嗨,


    這是個好問題,這裡的原因是因為資料當中有一些「極值」的狀況出現導致圖形效果不佳,建議可以利用 info() 的方式先看一下資料。除了講義的方法之外,也可以利用去除極值的方式來處理。


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃

  • 2020/06/19 上午 00:36
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    謝謝您的回答🙂 針對極值的處理方式, 感覺還是要靠經驗去分析背後的原因🤔, 才能決定資料要留還是要去除~~~


    => 或是靠實驗結果來反推 ><


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃