2017-05-01 36 views
0

我試圖用Python(scikit-learn)做一些二叉決策樹,但是我的示例有一個不好的重新分區:我有類似標記爲0和800的100 000個數據點000與標籤1.決策樹樣本中標記數據的權重

所以,當我得到樹,我沒有很多葉類與0,我甚至沒有任何深度爲5之前。在該節點中,有很少的幾點。

我也嘗試過與其他變量(仍然是相同的標籤)樹,我得到更多的數據與標籤0;問題是我不確定這是否合理。

我該怎麼辦?我應該使用每個標籤的50%來抽取我的數據樣本嗎?我擔心這樣做並不能真正代表我的數據,特別是如果我在數據樹中添加新數據。 有誰知道決策樹樣本的要求是什麼?我沒有發現任何關於它的任何信息。

非常感謝提前,

瑪麗

+0

恐怕這個問題對於這個論壇來說可能過於寬泛,但是https://stats.stackexchange.com/也許是對的。 –

回答

0

當一個數據集有屬於一類,而不是另一個顯著更多的數據點,它被稱爲不平衡。您的數據集不平衡。 你的少數族裔的數據點少於多數族裔的8倍。

與sklearn DecisionTreeClassifier處理這種最簡單的(正確)的方法是設置參數

class_weight="balanced" 

從我的經驗,這有很大幫助。 使用此設置,來自少數民族班的每個數據點將被賦予權重8.這意味着,大致來說,它將被視爲比多數班級任何一點都重要8倍。

在scikit-learn DecisionTreeClassifier documentation中查看更多詳情,並隨時在'不平衡學習'中進一步教育自己。