決策樹、梯度提升和預測變量的正態性
我對預測變量的正態性有疑問。我的數據中有 100,000 個觀察值。我正在分析的問題是一個分類問題,因此 5% 的數據被分配到 1 類,95,000 個觀察值被分配到 0 類,因此數據高度不平衡。然而,第 1 類數據的觀測值預計會有極值。
- 我所做的是,修剪掉數據的前 1% 和後 1%,這些數據輸入中可能出現的任何錯誤)
- 在 5% 和 95% 的水平上對數據進行了 Winsorised(我已經檢查過並且在處理我擁有的此類數據時是一種公認的做法)。
我的問題是我應該如何解決這個問題。
第一個問題,我應該在修剪數據時只留下數據嗎?還是我應該繼續進行 Winsorise 以進一步將極值壓縮為更有意義的值(因為即使在修剪數據之後,我仍然會留下我認為是極值的東西)。如果我只是在修剪數據後留下數據,我會在分佈中留下長尾,如下所示(但是我試圖分類的觀察結果大多落在這些圖的尾部)。
第二個問題,既然決策樹和梯度提升樹決定分裂,那麼分佈是否重要?我的意思是如果樹在(使用上面的圖)<= -10 的變量上分裂。然後根據圖 2(修剪數據後)和圖 3(在 Winsorisation 後)所有公司 <= -10 將被歸類為第 1 類。
考慮我在下面創建的決策樹。
我的論點是,無論數據中的峰值(由winsorisation製成)如何,決策樹都會在所有觀察結果中進行分類<= 0。因此,該變量的分佈在進行拆分時應該無關緊要嗎?它只會影響分裂發生的值?而且我不會在這些尾巴中失去太多的預測能力?
第二個問題。是的,基於決策樹的算法對預測變量的具體值完全不敏感,它們**只對它們的順序做出反應。這意味著您不必擔心預測變量的“非正態性”。此外,如果需要,您可以對數據應用任何單調變換 - 它根本不會改變決策樹的預測!
第一個問題。我覺得你應該不理會你的數據。通過修剪和優化它,您丟棄了可能對您的分類問題有意義的信息。
對於線性模型,長尾會引入可能有害的噪聲。但是對於決策樹來說,這根本不是問題。
如果您太害怕長尾,我建議對您的數據進行轉換,將其放入更漂亮的比例,而不會扭曲您的觀察順序。例如,您可以通過應用使刻度對數
對於小 x(大約從到),這個函數接近恆等式,但是大的值被嚴重收縮到 0,但是單調性被嚴格保留——因此,沒有信息丟失。
消除極端情況如何影響預測質量?通過刪除極值,您確實可以防止您的模型在非常高或非常低的點上進行拆分。這種限制會導致模型擬合訓練數據的能力沒有增加。你有一個相當大的數據集(100K 的點相當多,如果它不是非常高維的話),所以我假設你的模型不會遭受嚴重的過度擬合,如果你正確地對其進行正則化(例如通過控制最大樹大小和樹的數量)。如果是這樣,那麼限制模型在高點或低點分裂也會導致測試集上的預測質量下降。