首页 文章

使用fitctree训练具有不 balancer 训练集的更敏感模型

提问于
浏览
1

我正在尝试在MATLAB中构建一个用于二进制分类的决策树 . 我为每个实例提供了4个功能 . 正类中有大约25,000个实例,负类中有350,000个实例 .

我已经尝试在分类学习器应用程序和使用fitctree中构建分类器,但两者似乎只是将所有内容都标识为否定类 . 我猜测MATLAB正在构造树以产生最高的“准确度” .

有没有办法将决策树构建为更敏感的模型? (即,而不是“准确性”,我可以使用fitctree Build 灵敏度为70/80/90%或灵敏度和特异性相似的模型吗?)

1 回答

  • 0

    处理此问题的两种直接方法是:

    • 对少数类进行过采样或对多数类进行欠采样,以创建具有 balancer 类大小的训练集 . 既然你有很多实例可以使用,我认为欠采样应该没问题,即使用所有正类实例和负类实例的随机选择子集,但是如果你有更少的数据那么过采样技术SMOTE很受欢迎 .

    • 使用 Prior 参数 fitctree 指定每个类的先验概率,而不是允许 fitctree 从类大小(默认值)计算它:

    '先前' - 先验概率'经验'(默认)| '制服'|标量值向量|结构每个类的先验概率,指定为逗号分隔对,由'Prior'和以下之一组成 . 字符向量:'经验'从Y中的类频率确定类概率 . 如果通过观察权重,fitctree使用权重来计算类概率 . 'uniform'设置所有类概率相等 . ...

    在你的情况下,简单地将 'Prior', 'uniform' 添加到 fitctree 的参数可能会成功 .

    无论您选择哪个选项,请记住,用于评估分类器性能的测试集应该具有正类和负类的实际分布(或者您希望在实际数据中遇到的分布) .

相关问题