从Weka中的注释中可以看出,minNumObj控制着每个叶子的最小实例数。但是,使用minNumObj = 3的值,Weka会生成树

Scheme:weka.classifiers.trees.J48 -U -M 3

=== Classifier model (full training set) ===

J48 unpruned tree
------------------

pension = none: bad (8.0)
pension = ret_allw: bad (3.0/1.0)
pension = empl_contr
|   wage increase first year = low: bad (3.0)
|   wage increase first year = medium: good (3.0)
|   wage increase first year = high: good (0.0)
|   wage increase first year = unknown: good (1.0)
pension = unknown
|   longterm disability assistance = yes: good (4.0)
|   longterm disability assistance = no: bad (1.0)
|   longterm disability assistance = unknown: good (17.0)

Number of Leaves  :     9

Size of the tree :  12


其中只有几个实例的叶子很少。鉴于minNumObj为3,这怎么发生?此设置实际控制什么?

谢谢你的帮助!

最佳答案

我的理解是,每个叶子的最小实例数可确保在每个拆分中,至少有2个分支(但不一定超过2个)将具有最小数量的实例。

这是一个明智的设计。考虑一个极端的情况,其中每个节点最多具有10个不同的分支。这就要求父节点的每个分支至少要有最少10倍的最小实例数!鉴于数据在分支之间的分布可能非常不均匀,因此我们可能会寻找50倍左右的顺序。

另一种看待它的方法是分支是一种分离数据的方法。从100个实例中分离出一个实例并不能提供太多信息,因此您设置了最小的分离量。但是,如果您的节点有四个分支,并且其中两个以0个实例结束,另外两个以50个实例结束,则分支仍会产生信息。

因此,在一句话中,在多路树的情况下,最好将每个叶的最小实例数视为“每个分支的最小数据分离量”。

09-20 21:19