决策树(decision tree)

什么是决策树?

决策树是一种常用的机器学习算法,用于解决分类和回归问题。它是一种树状结构,通过对数据集进行递归划分,基于特征的条件来进行决策和预测。

以下都是一些决策树。

学习过程:

如何创建一个决策树呢?我们需要去给他们一些特征并判断他们是不是符合这些特征,再进行分类。 

决定一就是,我们要去判断去选择什么特征作为我们分类的关键。我们需要选择最大区分度也叫最大纯度的特征,比如DNA可以去完全的分辨是非是猫。

当我们并没有完全把猫分辨出来的办法时,我们要选择仅可能大的纯度去设计我们的特征。

图中,很明显根据耳朵的特征可以最大程度的分辨猫。 

决定二就是何时停止我们的分裂:

1.当我们已经100%分类完,2.再次分裂会超过被允许的最大深度,3.再分裂我们得到的纯度小于阈值,4.在这个点的样品数量小于阈值。

3和4主要考虑的是继续分裂可能会导致过度拟合的情况的出现。

测量纯度:

熵(entropy):熵是信息论中的一个概念,用于衡量信息的不确定性或混乱程度。在机器学习和数据挖掘中,熵被广泛应用于决策树和信息增益等算法中。

在这里p1指的是我们为猫的概率,可以看到我们这里应该是3/6的概率为猫,所以我们画出了左边的图,在p1等于0.5时,我们的熵是最大的,为1。

当我们有更多的数据时,他们就会对应着不同的熵值。 

 

它的函数就是由右边的公式而来。

H(p_{1})=-p_{1}log_{2}(p_{1})-(1-p_{1})log_{2}(1-p_{1}) 

信息激增(information gain):

学习熵的减小就是信息激增。 

我们要去计算我们的熵的减少,当我们的减少到最大时,我们的特征选择就是最好的。当我们的分裂减少的熵值并不是很明显,为了防止过拟合的情况的发生我们就会停止分裂。

 

我们就可以得到我们的信息激增的公式,在这里H指的是我们的熵,而w指的是我们的加权数。 

创建一个决策树的过程:

 

1.在决策树的根节点开始显示所有的数据。

2.计算我们的分裂的各个特征的最大信息激增值,并选择特征。

3.根据我们的特征分为左右两个分支。

4继续以上的分裂直到分裂的结束。 

在这个例子里,决策树下面分成了两个子决策树,这种表示方法,被称为是递归算法(recursive algorithm)。

在这里的最大深度的选取,可以从可用库中找到。

独热编码(one hot encoding): 

当我们在分类时,有不止两种的类别时,我们就要用到我们的独热编码来对他们进行分类。

我们把他们的三种耳朵的形状,分别用1和0的方式,分成三个特征 。

在这三个特征中,只有一个的属性是1这也就是为什么叫one hot 因为只有一个属性是热门的选项。 

我们也可以把另外两个属性也用0和1来表示与分类。

这种编码不止可以用在决策树上,在神经网络,线性回归,逻辑回归里都可以使用。

连续属性的特征:

我们的特征不仅仅可以只用于我们的离散型的数据,对于连续型的特征也可以使用。  

我们还是使用信息增强的方法,通过计算不同的分界点,得到数据增强最大的点。

回归树(regression tree): 

回归树顾名思义就是把线性回归与决策树相结合的产物 

这里我们的重量就变成了我们的回归预测的值了,前面的则是我们的输入值。我们通过这个方法就可以得到各个类别下面的猫的的个数,这时我们同一类别下的猫的体重进行去平均数,这时我们就可以得到他们的体重,在这里不再是去得到是否是猫。

我们现在要做的是去找到一个合适的特征区别值。 还是要算出它们的熵值下降值,我们先要算出我们的方差(variance),还是要得出我们的权重W。

然后我们再用全部值的方差减去加权方差,得到的最大的熵减的值,就是最好的特征分辨的值。

使用多个决策树:

树集成:也就是一个算法结构中有多个决策树。

 

 一个决策树会出现对于一个数据就显示出巨大的变化,会导致预测的准确率的下降,而我们有多个决策树,我们的准确率就会上升,因为可以把几个会因为个别决策树的影响会减小。比如上图,我们的预测猫,只有第二个不是猫,就可以通过更多的决策树避免误差。

样品回收(替换取样):

 

我们的取样方式就是从四个中取四遍,我们每次取完都要把原来的放回,这样就可以防止我们拿出的每次都是同样的四个。

我们也可以把她用于我们的决策树中。 

我们在这里用到的就是从10个训练集数据中,任意的取我们的训练数据,它是可以重复的,这样我们就可以得到一个全新的数据集。 

随机森林算法(Random forest algorithm):

我们会得到m个数据集,我们通过替换取样的方法得到不同的数据组,然后我们把每一组数据生成了不同的决策树。它们的集合也就是产生了我们的树集合。在这里我们叫它袋装决策树。我们在这里的根节点我们的区分特征值会相似甚至相同。

我们让我们在根节点的区分特征值变的更加的随机  

我们先要从n个数据中选取k个数据,载用这个k个数据用袋装决策树的方法得到多个不同的决策树,集成变树集成,这就是随机森林算法。

XGBoost:

它的优点是以上的几个,包括了正则化,和自动选择最好的分裂特征。它是一种比较好用的算法。 

导入我们的包,我们就可以进行预测了。 

何时使用我们的决策树呢?

这上面的几点就是如何去选择合适的模型,神经网络or决策树。 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值