使用一个数据集、Weka和J48分类器,我得到了以下树形结构:
在右侧,’NumTweets’这个字段被多次分裂。我能否限制J48在单个字段上进行超过指定次数的分裂?因为这显然是在对特定字段的数据过度拟合。理想情况下,我希望在同一个分支中最多重用同一个字段3到4次。有没有办法做到这一点?
提前感谢!
回答:
回答你的第一个问题:不,Weka浏览器不提供对特定属性的分裂限制。这只能通过代码手动完成。
尽管如此,这里有几种方法可以尝试来限制树的大小/减少过度拟合。
-
你可以尝试使用REPTree替代J48。它使用与J48相同的分裂标准,但采用了减少错误的修剪方法。它有一个选项可以限制树的深度。
-
降低J48的修剪置信度(-C参数)会导致更多的修剪,从而减小树的大小。
-
你可以尝试调整minNumObj参数(到达每个叶子的最小实例数)。