logo
Loading...

GradientBoostingClassifier與LogisticRegression的參數與應用? - Cupoy

下列的程式碼只看範例的說明還是很難理解,可以解說一下程式碼內容嗎? 1、GradientBoost...

ml100-2,ml100-2-d30

GradientBoostingClassifier與LogisticRegression的參數與應用?

2019/05/18 下午 02:37
機器學習共學討論版
tklin
觀看數:24
回答數:1
收藏數:0
ml100-2
ml100-2-d30

回答列表

  • 2019/05/20 下午 00:45
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:0
    留言數:1

    Ans1 

    後面的參數, 是模型的超參數

    有關參數意義的介紹, 因為解釋起來內容比較多, 

    而且在Part3隨後的課程中都有, 所以這邊就不多作介紹, 您也可以直接參考官網查詢


    Ans2

    因為梯度提升樹分類器出來的葉編碼, 每個類別都會有一組(二元分類有兩組, 三類別有三組, 以此類推)

    所以[:, :, 0]指的是只取第一個類別的葉編碼

    詳情可以參考 sklearn 官方的 apply 說明 

    其中 Returns : X_leaves : array-like, shape (n_samples, n_estimators, n_classes)

    說明了三個參數分別對應到"第幾筆資料(n_samples)" "第幾棵樹(n_estimators)" "第幾個分類(n_classes)"


    Ans3

    同學你貼的程式碼倒數第三行是註解...所以我就先假定你問的是下面這三行好了, 這三行分別意思是 :


    gdbt.fit(train_X, train_Y)

    這行用梯度提升樹去 fit train 的資料, 讓提升樹成為一個分類器


    onehot.fit(gdbt.apply(train_X)[:, :, 0])

    train 的值經過這個分類器後, 看看每棵樹出現的葉點有幾種可能, 將這些可能進行獨熱編碼(OneHotEncoding)


    lr.fit(onehot.transform(gdbt.apply(val_X)[:, :, 0]), val_Y) 

    將 val 的資料經過上述分類器與獨熱編碼轉換後, 對邏輯斯回歸去 fit 結果, 

    因為葉編碼只是一種造出特徵的方式, 本身不包含預測模型, 所以還需要另外使用邏輯斯回歸來輸出預測