在用R做決策樹模型的時候發現結果變數中分類佔比差距太大的情況怎麼處理,是調整資料來源還是修正模型呢?

時間 2021-05-06 17:48:12

1樓:魏秀參

首先,談談為什麼資料不平衡(unbalanced data)的時候分類會出問題。因為分類器在設計的時候都是優化某個loss函式的,比如優化accuracy,使得acc較高。那麼假如對二類分類來說(0和1兩類),若訓練集中0類佔90%而1類佔10%,那麼分類器傾向於將所有樣本都劃為0類,這樣我就在訓練集上可以有90%正確率了。

這也造成了分類器向0類偏斜,從而導致分類泛化效能變差。

對於資料不平衡一般有如下幾種處理方式:1. 代價敏感學習(cost sensitive):

簡而言之就是將樣本少的類別設定較大的懲罰因子,不過這種方法對懲罰因子特別敏感,實踐中需要耐心調參;2. sampling:上取樣(up sampling)或下取樣(under sampling)。

上取樣的話是針對樣本較少的類,將其複製多份以達到類別平衡,或使用SMOTE方法;下取樣則是針對樣本較多的類,在剛才的例子中就是按照1類的數目(樣本較少的類)從0類中(樣本多的類)取等量的樣本,構成平衡的訓練集;3. easy ensemble:這是整合演算法中最簡單的方法之一,針對樣本不平衡一般都會有優異表現。

具體做法是,從0類中(樣本多的類)中取1類等量樣本,並且不重複的取多次,構成多個訓練集,最終使得0類樣本均參與訓練一次。之後,將多次訓練得到分類器做模型融合。以上。

2樓:

實際業務中會經常遇到非均勻分類問題,之前我遇到的資料集大概是15:1,解決方案一般是對正樣本過抽樣,對負樣本欠抽樣。然後構建新的資料集使得正負比例大概在1:

3就可以達到比較好的結果了。在r裡面的DMwR包中有實現,請查詳情

決策樹教程

維娜微辣 現在買也來得及啊,才48歲,買夠15年,也就63歲,就可以拿退休金了。你媽媽在時間上虧一點點,你爸本來就60才能退休,差不多年紀啊。 螞蟻社保CEO 一次性補繳15年養老保險,大概9萬多元,退休後每月領取大概1300多元養老金,是2011年之前的政策了。為了保證養老保險制度健康穩定發展,2...

決策樹如何對連續性特徵進行分段?

並不用考慮每乙個example,對第i個feature,首先以feature i 為key sort feature i,label i 然後將label 有變動的地方作為可能的劃分點,比如 label 為 1,1,0,0,0,1 只需要考慮兩個地方即 1,1 後面和 1,1,0,0,0 後面。對於...

如何最簡單 通俗地理解決策樹演算法?

雲朵 決策樹 Decision tree 是一種基本的分類與回歸方法,是一種非引數的有監督學習方法。決策樹是一種樹狀結構,它的每乙個葉子結點對應著乙個分類,非葉子結點對應著在某個屬性上的劃分,根據樣本在該屬性上的不同取值降氣劃分成若干個子集。其基本原理是通過遞迴切割的方法來尋找最佳分類標準,進而最終...