logo
Loading...

模型擬合問題(model.fit) - Cupoy

不好意思各位專家們,這一章我真的搞不懂在做什麼........因此有許多問題希望專家們幫忙解答,不然...

ml100-3-d32

模型擬合問題(model.fit)

2019/10/01 下午 03:31
機器學習共學討論版
Yu Chen Lin
觀看數:115
回答數:3
收藏數:0
ml100-3-d32

不好意思各位專家們,這一章我真的搞不懂在做什麼........因此有許多問題希望專家們幫忙解答,不然我真的覺得在看天書,問題如下:

一.

二.

三.

回答列表

  • 2019/10/01 下午 04:02
    Yu Chen Lin
    贊同數:0
    不贊同數:0
    留言數:0

    另外:為什麼作業裡隨機森林就不用加上[:,:,0]???這又差在哪裡..........

  • 2019/10/03 下午 01:00
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:2
    留言數:1

    這些程式是參照 sklearn 的官方範例改寫的

    如果這樣讀得很辛苦, 那麼在網路上的範例程式也會看得有點辛苦喔

    然後一個問題裡面, 請盡量不要一次放太多小題

    這樣會增加自己與別人閱讀的難度

    專家回答也會很辛苦, 期望你能理解


    先回答問題 :

    Ans.一(1+2+3+下方額外提問)

    apply完後, 得到的是原始資料使用這個模型預測後, 每顆樹的標籤結果

    就像教材中提到的, 是樹葉的號碼

    假如有100棵樹, 輸出的結果就是這些資料在100棵樹中, 分別落在哪個葉點

    一筆資料經過100棵樹, 就會輸出100個葉點標籤

    n筆資料, 就會輸出 nx100的 array

    不同的是, 隨機森林每個葉點直接預測分類, 所以apply後只有 nx100 (下方問題)

    但梯度提升樹預測的是每一類的機率, 所以apply後會是 nx100x類別數

    然後 onehot 只取第一個, 是因為這是二元分類, 

    預測0與1的樹完全一樣, 取一邊就好

    (後面的1+2)

    資料集的train與test要不同, 就像考試準備的題目與真正考題要不同

    因為前面的 GBDT 已經把 train_X 拿來訓練

    後面訓練 Logistc 就不能再拿 onehot 後的 train_X 拿來訓練, 

    因為train_X的資訊已經存在模型內了

    這就像為了一個大考, 你準備了兩次模擬考, 

    但兩次模擬考的題目相同

    那這樣就沒有兩次模擬考的效果了

    所以在做葉編碼時, 需要把資料切成 train, valid, test 三段比較合理


    Ans二

    只要是sklearn分類預測模型, 輸出pred_proba就會對每個類別分別預估機率

    輸出的是 "資料筆數x類別數" 所以是二維陣列(你可以print部分出來看看)


    Ans三

    資料較適合的時候, GBDT+LR 的效果會比 GBDT 效果還要好(請參看原始程式的圖)

    範例這邊因為資料比較沒那麼適合葉編碼, 所以兩個曲線並沒有顯著差異

  • 2019/10/04 下午 05:49
    林逸杰
    贊同數:0
    不贊同數:0
    留言數:0

    我也是看不懂圖,但wiki的解釋還算清楚,供你參考

    https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF