PART 决策树算法是一种由 WEKA 的作者 Eibe Frank 和 lan H. Witten 在1998年发明的算法,他们在1998年发表了论文Generating accurate rules sets without global optimization 详细地介绍了PART决策树的原理,并在WEKA中完整地实现了PART决策树。由于之前的股票数据挖掘的决策树部分就是用的这个算法,所以看了源代码,涉及的类比较多,贴上主要的一部分。
PART决策树实际上是一种利用不完整的决策树在数据集中提取规则的算法。算法最初的原理来源于割治的思想:先建立一条规则,将规则所覆盖的实例去除,然后递归为剩余的实例建立规则,直至没有剩余的实例。而创建一条规则的过程就是在当前的实例集上创建一个完整的决策树,然后将覆盖实例数最多的叶子节点转化成一条规则,然后丢弃这个决策树。
上述的方法看上去是一个效率很低的算法,但是可以通过优化,使程序加速。关键的思路在于建立局部决策树而不展开整棵树。局部决策树将建树和修剪合为一体,从而得到一个简化后的子树,从简化后的子树中读出一条规则来,并停止建树的过程。
这个算法对比其他规则形成方法,它的主要优势在于简便,因为其他方法需要采用全局优化才能达到相当的性能水准。对于我们的股票数据挖掘而言,这个算法既利用了决策树的特性,又能直接生成规则,相比其他算法而言,省去了我们从决策树提取规则的步骤,且由于我们的数据集较大,算法的性能对于我们来说十分重要,所以PART决策树算法的高性能也是我们选择它的重要原因之一。