【发布时间】:2011-03-14 10:13:07
【问题描述】:
我有一个二进制类数据集 (0 / 1),它对“0”类有很大的倾斜(大约 30000 对 1500)。每个实例有 7 个特征,没有缺失值。
当我使用 J48 或任何其他树分类器时,几乎所有“1”实例都被错误分类为“0”。
将分类器设置为“未修剪”,将每个叶子的最小实例数设置为 1,将置信度因子设置为 1,添加带有实例 ID 号的虚拟属性 - 所有这些都没有帮助。
我就是无法创建过拟合数据的模型!
我也尝试了 Weka 提供的几乎所有其他分类器,但得到了相似的结果。
使用 IB1 可以获得 100% 的准确率(trainset on trainset),因此具有相同特征值和不同类别的多个实例不是问题。
如何创建完全未修剪的树? 或者以其他方式迫使 Weka 过度拟合我的数据?
谢谢。
更新:好吧,这太荒谬了。我只使用了大约 3100 个负例和 1200 个正例,这就是我得到的树(未修剪!):
J48 unpruned tree
------------------
F <= 0.90747: 1 (201.0/54.0)
F > 0.90747: 0 (4153.0/1062.0)
不用说,IB1 仍然提供 100% 的精度。
更新 2: 不知道我是怎么错过的 - 未修剪的 SimpleCart 可以工作,并且在火车上提供 100% 的准确率;修剪后的 SimpleCart 不像 J48 那样有偏见,并且具有不错的误报率和误报率。
【问题讨论】:
标签: machine-learning weka