logo
Loading...

利用直方圖畫出橫縱軸的意義? - Cupoy

1. 篩選前畫出來的直方圖,即【橫軸0.0~0.1、縱軸超過300000】的這根,代表什麼意思?無法...

ml100-2,直方圖,ml100-2-d05

利用直方圖畫出橫縱軸的意義?

2019/04/29 下午 03:27
機器學習共學討論版
張小馬
觀看數:93
回答數:5
收藏數:0
ml100-2
直方圖
ml100-2-d05

1. 篩選前畫出來的直方圖,即【橫軸0.0~0.1、縱軸超過300000】的這根,代表什麼意思?無法理解註解寫的【注意到該欄位的最大值和 75% 百分位數的值有異常大的差距】,請問這張圖的橫軸縱軸分別代表什麼?因為在篩選完之後,能理解縱軸降為80000以下(看起來是將0.01的極大值排除),但橫軸卻暴增為10萬~50萬?請教hist畫出來的橫縱軸意義。


2. 總資料筆數是307511,【app_train.loc[app_train['AMT_INCOME_TOTAL']<app_train['AMT_INCOME_TOTAL'].quantile(0.99)]】有304417筆;【app_train.loc[app_train['AMT_INCOME_TOTAL']>app_train['AMT_INCOME_TOTAL'].quantile(0.99)]】有3014筆,與總資料筆數差異了80筆。請問這80筆是【app_train.loc[app_train['AMT_INCOME_TOTAL']=app_train['AMT_INCOME_TOTAL'].quantile(0.99)]】的意思嗎?


3. 【app_train.loc[app_train['AMT_INCOME_TOTAL']=app_train['AMT_INCOME_TOTAL'].quantile(0.99)]】,中間寫「等於=」的語法是不成立的,請問該如何做出(篩選出)這段我想要的語法?


4. 以連續數值的概念,不應該只有80筆,而應該有307筆上下才對(畢竟是取0.01),取下來只有80筆請問是什麼原因呢?

回答列表

  • 2019/04/29 下午 08:02
    Seanyu.TW
    贊同數:0
    不贊同數:0
    留言數:1

    Hi,

    1. histogram 的橫軸,代表數值的實際值;縱軸則代表次數。由於橫軸的數值實際上有無限多種可能 (假設是浮點數),於是有所謂 "bin" 的概念,也就是實際數值落在 a-b 之間的數值,會統一計算在這個 "bin" 中。比如以年紀次數來說,假設其中一個 bin 所代表的為 20 ~ 25 歲,那實際上 20.1, 22, 23.5, ... 都會被歸在這個 bin 中。

  • 2019/04/29 下午 08:06
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:0

    2. 是的,我想你的想法沒錯。在你使用了 < quantile(0.99), > quantile(0.99) 之後,唯一剩下的就會是 == quantile(0.99)。(當然,唯一的例外你要小心 NA)

  • 2019/04/29 下午 08:07
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:0

    3. 要用 == 唷。

  • 2019/04/29 下午 08:12
    Seanyu.TW
    贊同數:0
    不贊同數:0
    留言數:1

    4. 回到上面的解釋,當大於,小於與等於都嘗試過後,總比數應該會一樣,你可以在試看看 :)

  • 2019/04/30 上午 10:07
    張小馬
    贊同數:0
    不贊同數:0
    留言數:3

    這問題看來,應該不是去篩掉那1%極端值,而應該是直接去指定bin的區間大小才對吧......畢竟,如果以排除極端值的方向去做,表示我們完全信任hist自動以某個數字去切區間,但這觀念我覺得不太對,舉例來說,如果我想看以五萬切的區間,然後超過五十萬的我不想看,那應該是把超過五十萬的人資料聚集成一個,命名為【50萬以上】,這才是正確的做法,既保留極端值,也能做到我們想看到的視覺化。畢竟,極端值不代表錯誤資料,人家賺比較多錢錯了嗎 XDD