本周学习内容:
- 继续学习预剪枝、后剪枝部分的处理以及结果可视化展示
- 学习神经网络算法相关内容
1 实现决策树结果的可视化以及预剪枝、后剪枝的处理
这里可视化是选择python 中的 graphviz 库来实现,graphviz模块提供了两个类:Graph和Digraph。他们都是使用DOT语言,一个是创建无向图,一个是创建有向图。
首先在所给出的数据集(仍使用上周的西瓜数据集)上基于基尼指数来进行划分选择得到的决策树,采用留出法,预留一部分数据用作测试集来对生成决策树的精度进行评估,这里将数据集随机化为两部分,编号{1,2,3,6,7,10,14,15,16,17}的数据作为训练集,其余数据作为测试集。
具体计算基尼指数函数如下:

最终构建的决策树结果如图1所示,
图1未剪枝的决策树
对图1的决策树进行预剪枝得到图2的决策树,可以看出来该方法剪掉了较多的分支,虽然降低了过拟合的风险,但存在较大的欠拟合风险。
图2 预剪枝的决策树
对图1的决策树进行后剪枝得到图3的决策树,与图2相比,该决策树保留了较多的分支,欠拟合风险较小,但训练时间开销会大一些。

本周学习了决策树的预剪枝、后剪枝及其可视化,使用graphviz库展示决策树结构。通过留出法评估不同剪枝策略在西瓜数据集上的精度,结果显示后剪枝保留更多分支,减少欠拟合风险。此外,介绍了神经网络的基础,包括MP神经元模型、感知机、多层网络、误差逆传播(BP)算法以及RBF和ART网络。下周计划学习支持向量机。
最低0.47元/天 解锁文章
2614

被折叠的 条评论
为什么被折叠?



