帅呆的墨镜 · 1.5T动力再次回归 ...· 1 年前 · |
安静的油条 · 关于转基因标识,你想知道的全在这里了 - 知乎· 1 年前 · |
另类的牙膏 · 米家、涂鸦、Hilink、智汀等生态哪家强? ...· 1 年前 · |
微醺的香烟 · 安川伺服编码器插头接线图 - 抖音· 1 年前 · |
我有一个二进制类数据集(0 / 1),它向"0“类倾斜很大(大约是30000比1500)。每个实例有7个特性,没有缺少值。
当我使用J48或任何其他树分类器时,几乎所有的"1“实例都被错误分类为"0”。
将分类器设置为"unpruned",将每个叶的最小实例数设置为1,将置信度设置为1,添加一个带有实例ID号的虚拟属性--所有这些都没有帮助。
我只是不能创建一个适合我的数据的模型!
我也尝试了几乎所有其他分类器Weka提供,但得到了类似的结果。
使用IB1可以获得100%的准确率(训练集上的训练集),因此不存在具有相同特征值和不同类的多个实例的问题。
我怎样才能创建一棵完全没有修剪的树?不然就强迫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那样有偏见,并且有一个不错的假正负比。
发布于 2010-07-11 16:53:35
快速而肮脏的解决办法是重新采样。扔掉所有的,除了1500你的积极的例子,并培训一个平衡的数据集。我非常肯定,在Weka中有一个重采样组件可以做到这一点。
另一种解决方案是为每个类使用一个具有可变成本的分类器。我确信libSVM允许您这样做,我知道Weka可以包装libSVM。然而,我已经有一段时间没有使用Weka了,所以我在这里没有多少实际的帮助。
发布于 2010-07-15 19:57:05
Weka包含两个感兴趣的元分类器:
它们允许您使任何算法对成本敏感(不限于支持向量机),并指定成本矩阵(对各种错误的惩罚);如果将
1
实例错误地分类为
0
,则会给出比错误地将
0
错误地分类为
1
的更高的惩罚。
结果是,该算法将尝试:
尽量减少预期的错误分类成本(而不是最有可能的类别)
https://stackoverflow.com/questions/3222192
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287