提升邏輯回歸模型
Adaboost 是一種集成方法,它將許多弱學習器組合成一個強學習器。我讀過的所有 adaboost 示例都使用決策樹樁/樹作為弱學習器。我可以在 adaboost 中使用不同的弱學習器嗎?例如,如何實現 adaboost(一般是 boosting)來提升一個邏輯回歸模型?
分類樹和邏輯回歸的一個主要區別是前者輸出類別 (-1,1),而邏輯回歸輸出概率。一個想法是從一組特徵中選擇最好的特徵 X 並選擇一個閾值(0.5?)將概率轉換為類,然後使用加權邏輯回歸來找到下一個特徵等。
但我認為存在一種通用算法來提升不同的弱學習器,而不是輸出概率的決策樹樁。我相信 Logitboost 是我問題的答案,但我試圖閱讀“Additive Logistic Regression”論文並被困在中間。
不要混淆預測變量的處理(通過基礎學習器,例如樹樁)和 boosting 中損失函數的處理。雖然 AdaBoost 可以被認為是尋找基學習器的組合以最小化錯誤分類錯誤,但您引用的“Additive Logistic Regression”論文表明,它也可以被制定為最小化指數損失函數。這種見解為通過梯度提升最小化可微損失函數的一類廣泛的機器學習問題開闢了提升方法。在每一步擬合的殘差是根據損失函數的梯度計算的*偽殘差。*即使預測變量被建模為二元樹樁,模型的輸出也不必是二元選擇。
正如另一個答案所述,線性基礎學習器可能不適用於提升,但無論是標準還是邏輯意義上的“提升回歸”,線性基礎學習器都不需要。確定的非線性樹樁可以組合為慢速基礎學習器,以最小化適當的損失函數。它仍然被稱為“增強回歸”,儘管它與預測變量係數的線性標準回歸模型相去甚遠。對於線性模型和以樹樁或樹作為預測變量的“增強回歸”模型,損失函數在功能上可以相同。ISLR的第 8 章非常清楚地說明了這一點。
因此,如果您想要一個與增強回歸等效的邏輯回歸,請關注損失函數而不是基礎學習器。這就是您引用的論文中的 LogitBoost 方法所做的:最小化對數損失,而不是 adaboost 中隱含的指數損失。Wikipedia AdaBoost 頁面描述了這種差異。
該站點的許多參與者會爭辯說,基於對數賠率/概率的預測比嚴格的是/否分類預測更可取,因為前者更普遍地允許在假陽性和假陰性預測的額外成本之間進行不同的權衡. 正如您對相關問題的回答所表明的那樣,可以從 AdaBoost 派生的強分類器中獲得估計概率,但 LogitBoost 可能會提供更好的性能。
用於分類的梯度提升的實現可以提供有關潛在概率的信息。例如,關於梯度提升的這個頁面展示了
sklearn
代碼如何允許在邏輯回歸的偏差損失和 AdaBoost 的指數損失之間進行選擇,並記錄了從梯度提升模型預測概率的函數。