Jupyter Notebook
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eee5fe7856a5d5894d69f3d4e409202c.png)
这里是我需要用Jupyter Notebook这个软件,所以需要注意他的一些基本的操作,以及和pycharm不同的地方
决策树概述
决策树是有分类树和回归树的,一种是对于离散型变量,一种是对于连续型变量
而在大数据杀熟中常常使用的是决策树的优化模型–随机森林.他是一种回归模型,由回归树所构成
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ef5f7cb2e258cf3a6bc1f1941d37ae8c.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/70e657c2e1e9ffabebad32d2677016d8.png)
非叶子节点的部分就是决策树的分类属性,叶子节点得到的是结果
这里演示了依靠属性去进行分类
构建一个树,在树里面进行一系列的决策
分类的算法,所谓分类的算法,可以把数据分成几个类别
决策树既能做分类又能做回归
比如说一家几口人根据年龄,性别去进行分类
先有树,将数据丢到树中,输出结果即可
每一个叶子节点里面都有唯一的决策值
先通过训练阶段构造决策树,再通过决策树去进行构建,
熵原理解读
在选择决策树的属性时,一般的判断方式是以熵和Gini系数.
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/52bbfda868e24bde6917401a4ab05f57.png)
熵与基尼系数所描述的都是一个数据集其混乱程度的大小.
集合中不同标签越多熵值越大
当我的数据通过决策树的属性之后熵和Gini系数越小,效果越好,越大效果越差
(当然不只是看这些东西)
构造树的基本想法是随着树深度的增加,节点的熵迅速地降低, 熵降低的速度越快越好,这样有希望进行最少的决策,即获得高度最矮的树能三步做完,不要五步.
当我们对于一个数据什么都没做的时候他自身固有的熵值是什么? 就是已有的label根据熵的计算公式计算
加权平均先记录在该节点下每一种情况对应的熵,在根据这种情况出现的概率乘以熵值求和可以得到经过这个节点后的熵值
以基尼系数为例进行的计算
决策树构造实例
.cn/20210623160231830.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUzMTgzNjA4,size_16,color_FFFFFF,t_70)这是一个不包括剪枝操作的决策树的构建
可以说是一个递归的过程通过不断的找到’最短路径’
决策树构造实例
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/378b5e7b4f330776dc38b8ad7e7b652a.jpeg)
这是一个不包括剪枝操作的决策树的构建
可以说是一个递归的过程通过不断的找到’最短路径’–可以使熵或Gini下降最快的属性放置方法
决策树构造实例
gain**信息增益(对于某个节点来说)是上个节点的熵减去这个节点的熵所得到的值,该值越高越好,分得的数据集越纯越好,信息增益率
信息增益率:当存在的属性很多,对应的样本很少
当我的信息增益率特别大,信息增益也特别大时该如何取舍呢?
目标函数这里是评价函数,目标是纯度很大,熵很小,评价函数对应的值越小越好
没有子节点就是叶子节点
如果我用年龄我怎么判断要那个age不要那个age,可以选取分界点将连续值离散化,分区间进行比较.
决策树剪枝
数据可能不是完全正确的,所以不需要精度过高的决策树,因为这会过拟合
所以有了以下两个操作
1.预剪枝 在构建决策树的过程中提前停止
2.后剪枝 决策树构建好后才开始裁剪
T_leaf 是叶子节点的个数(就是那个带绝对值的玩意) C(T)是Gini系数
随机森林
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/65b1391730aa2f864a46c96b1ed2d049.jpeg)
Bootstraping: 有放回的采样
Bagging 有放回采样n个样本一共建立分类器
又放回: 假设有集合[1,2,3,4] 你可以选取1,2,3,4,1,2 就是说已经选取的任然可以进行选取就是有放回的
随机森林: 我构造出了多棵决策树
随机: 重点操作 双重随机性
第一重:数据的选择随机性 选取数据时随机的选取一定的数据 比如有集合[1,2,3,4,5] 你只随机的选择了 1,4,5,1(又放回) 这样大量的随机可以减少有误数据的影响
第二重:特征选择的随机性 如判断出不出门的天气,温度等 假设有八个特征F1,F2,…,F8 可以选取F5,F6…等等(注意没有又放回之说)