(相关资料图)
在之前的决策树实现时,直接选择了信息增益最大的特征作为划分特征。在一定程度上会造成过拟合,也就是该特征并不能作为一个好的划分特征但却被用来划分数据集。所以在之前的基础上添加了阈值处理,如果特征的的信息增益太小,那么不将其作为一个划分特征,而是直接采用最大投票的原则,选出占比最大的类别作为叶子节点的值。完整代码如下:
经过测试,在阈值和对应错误率如下所示:
threshold:0.029 error_ratio:0.106
threshold:0.03 error_ratio:0.1059
threshold:0.031 error_ratio:0.1058
threshold:0.032 error_ratio:0.1062
threshold:0.035 error_ratio:0.1081
似乎和之前没有太大的区别,至于阈值的选择,目前是直接参考每次增益猜测得出的,可能更好的方法得出阈值。
关键词: