我正在处理具有六个有序类的序数分类问题,我想将神经网络分类器与尽可能简单且无参数的基线分类器进行比较。
就我而言,我希望基线仅使用最重要的单一功能神经网络使用的。对于这个特定问题,寻找一组类别阈值是有意义的这让我分类为:
X <= t_0 -> class 0
t_0 < X <= t_1 -> class 1
t_1 < X <= t_2 -> class 2
t_2 < X <= t_3 -> class 3
t_3 < X <= t_4 -> class 4
t_4 < X -> class 5
我查看了一些选项,决策树似乎符合要求。它们非常简单,不需要选择任何自由参数(不像例如-最近的邻居需要选择一个值)。如果我使用参数创建树,max_leaf_nodes=6则很容易提取阈值从拟合后得到的决策树。(如果我可以使用另一种方法来满足或更好地实现这一目标,请在评论中告诉我!)
我将我的数据分为六层,同时确保所有层中的类分布都非常相似。对于这个基线,我通过过采样来平衡类,因为这些类最初有些不平衡。(最常见类和最稀有类的样本比例约为 5:1)。
对于我的六个折叠中的五个,决策树方法在我使用该折叠进行测试而其余用于训练时效果很好。但是,对于用于训练的最后一个折叠组合,我得到了一个决策树,其中第 2 类没有在输出中表示。相反,两个叶节点代表类 1:
有没有办法强制决策树以树的六个叶节点代表六个不同的类的方式构建自己?
