2017-08-04 28 views
1

使用數據集,Weka和J48分類器我有以下樹:J48 tree我可以防止J48分類器在同一個字段上分裂超過x次嗎?

而且它在右側的'NumTweets'上分裂了很多。我能阻止J48在一個字段上進行超過指定數量的分割嗎?因爲這顯然是過度配合我的數據在一個特定的領域。理想情況下,我希望它只能在分支中重複使用3-4次相同的字段。有什麼辦法可以做到這一點?

在此先感謝!

回答

2

要回答你的第一個問題:不,WEKA瀏覽器不提供特定屬性的拆分限制。這隻能在代碼中手動完成。

說了這麼多,你可以在這裏嘗試限制樹大小/減少過度擬合。

  1. 您可以嘗試REPTree而不是J48。它使用與J48相同的拆分標準 ,但使用減少的錯誤修剪。它有一個 選項來限制樹的深度。

  2. 降低J48修剪置信度(-C參數)將導致更多的修剪,從而導致更小的樹大小。

  3. 您可以嘗試使用minNumObj(達到每個葉子的最小數量的實例)參數。

+0

好吧,不好意思看REPTree,謝謝! – user3394131

2

不,但您可以將J48 minNumObj配置參數設置得更高。 (默認值爲2.)這對每個葉節點必須包含的最小數據元素數量設置約束。

通過這種方式(通過反覆試驗),您可以在某種程度上平衡和/或簡化決策樹。

也許你可以放棄或忽略惱人的屬性。也許將NumTweets分成不同的分類(例如<每天1條推文,<每日10條推文,更多> 10條推文日)也有幫助?這可以通過預處理選項卡上的Discretizing Filter來完成。

+0

我已經玩過'minNumObj'配置,但幾乎所有的設置都會導致屬性播放不好。刪除某些屬性也是同樣的事情。我會嘗試離散化的功能,我正在計劃這樣做,但知道一個預處理過濾器是很好的知道,謝謝! – user3394131

相關問題