什么是决策树:
文章图片
决策树以二叉树为原型,是一个非参数学习模型,可以解决多分类,也可以解决回归问题,对数据有很好的解释性。
像我们的KNN的缺点就是没有很好的解释性
像这样的决策树,我们想到,我们对我们的样本数据,是在哪个维度进行划分的呢?还有在某个维度的哪个值上进行划分的呢?
这里就需要用到我们的信息熵和基尼系数了。
我们先来看我们的信息熵:
看下熵的解释:熵在信息论中表示随机变量不确定度的一个度量(直白的说就是熵越大,不确定度就越高,熵越小,不确定度就越小)
那代入我们的决策树中,不确定度代表什么意思呢?
比如说我们的一个班级的男女同学比例,如果男女比例是1:1的话,那告诉我们一个学号,猜对女性别的概率就只有50%,不确定性就很高,我们没办法确定这个学号的性别是男还是女,这个时候熵比较大。如果男女比例是1:9的话,那么告诉我们一个学号,才对女性别的概率就是90%,不确定性相对50%就比较小了,这个时候我们的熵相对于1:1的比例就会更小
我们来看下信息熵的数据公式:
文章图片
这个公式的意思就是,一共有K个类别,每个类别的概率是P(i),我们对p做完运算之后求和,这里的负号是因为我们的P是一个小于1的数,logP是小于0的,所以我们加一个负号。这个H就变成正的了。
文章图片
这个H的结果和我们上面的例子是一样的。或者我们将{1,0}代入就去,H=0.此时我们的没有不确定性。
【6.0——决策树原理DecisionTree(信息熵,基尼系数),决策树解决回归问题,决策树局限性】那我们的决策树模型只要找到某个维度按照某个值划分之后,此时信息熵最小的就可以了
采用遍历的方法去遍历所有的样本,我们来看下代码:
文章图片
我们使用scikit-learn封装好的决策树看一下结果
文章图片
说完了信息熵,接下去说基尼系数:
基尼系数基本性质和信息熵一样,包括对不稳定性的解释。就是公式不一样
看下公式:
文章图片
这里基尼系数的代码我就不贴了。就是将信息熵替换成gini就好了
求出来的结果也基本一样。
当然,scikit-learn封装好的方法里面还有很多超参数,大家可以自行查阅文档,都是很有用的
下面我们来看下如何解决回归问题:
解决回归问题思路就很简单
文章图片
我们还是来看下这个图,解决分类问题返回的是一个类别,解决回归问题返回的是一个具体的数
我们在这里分好类别之后,比如我们已经确定了新样本属于B类别,我们只要返回B类别中所有样本的平均数就好了,这就是解决回归问题的思路
最后,我们来看下决策树的局限性:
我们从上面可以看出来,决策树对数据进行划分的时候。都是使用平行于轴或者垂直于轴来做划分。
并且通过样本数据的平均值来求值
这就导致了决策树对样本数据特别敏感
而随机森林就很好的解决了这个问题
推荐阅读
- paddle|动手从头实现LSTM
- 人工智能|干货!人体姿态估计与运动预测
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- 读书笔记|《白话大数据和机器学习》学习笔记1
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- Python机器学习基础与进阶|Python机器学习--集成学习算法--XGBoost算法
- 深度学习|深度学习笔记总结
- 机器学习|机器学习Sklearn学习总结
- 机器学习|线性回归原理与python实现