GradientBoostingClassifier與LogisticRegression的參數與應用?
回答列表
-
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 結果,
因為葉編碼只是一種造出特徵的方式, 本身不包含預測模型, 所以還需要另外使用邏輯斯回歸來輸出預測