数学建模 决策树&随机森林

2,736 阅读2分钟

www.bilibili.com/video/BV1Ps…

决策树

决策树可以做分类、回归

数据从上往下在树中游走,叶子节点就是最终的预测值or回归值

决策属性=非叶子节点

Q:指标age、male是谁定下来的?

熵=混乱程度

A的熵比较大,对每个类别出现的概率低,ln取负比较大,总和更大

B的熵比较小,1的概率大,ln取负比较小,总和更小

基尼系数,和熵的意义差不多,p越小,Gini越大

----->谁当根节点是根据熵算出来的,熵下降的越快的(信息增益越大)越适合做节点

根据天气进行,play二分类

构建决策树,四个指标谁来当根节点--信息增益最大的

根据labei计算初始熵值=0.940

熵下降=纯度上升,信息增益大,分类效果上升

**信息增益的BUG:**ID如果也当作一个指标-->信息增益=0.9最大化,但是不适合做节点,他存在的属性很多,每个属性对应样本的个数很小,这种情况会发生信息增益很大的BUG

故使用信息增益率

  • 信息增益率构建决策树
  • 评价函数(损失函数)评价决策树

高度高,分支多,效果好,会过拟合,故希望找高度最矮的树;剪枝:

随机森林

随机

  • ①样本:对样本随机采样部分有放回的采样)来建立决策树---使得某些不好的数(异常值)选不到
  • ②特征::对特征随机采样部分不放回的采样)来建立决策树---使得某些不好的特征(异常特征)选不到

森林:多颗决策树,共同做决策

  • 分类,取众数
  • 回归,取平均数

代码实操

代码来源:机器学习及其MATLAB实现-从基础到实践_炼数成金

决策树可直接运行

随机森林需要先将工具包(下图文件夹)扔到matlab/toolbox文件夹里,然后设置路径,便可运行

优化决策树①:(设置叶子节点含有的最小样本数)

优化决策树②:(剪枝)