R机器学习:基于树的分类算法的原理及实现

本文深入浅出地介绍了决策树的原理和实现方法,包括递归分类算法的概念、Gini指数在选择划分问题中的作用,以及如何处理连续和多分类变量。通过实例展示了如何在R中使用`classif.rpart`构建和调整决策树模型,强调了模型的可解释性和超参数的重要性。同时,讨论了交叉验证在防止过拟合中的角色,以及如何通过交叉验证评估模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

基于决策数的分类方法是一种非常直观的,非常好解释的,初中生都可以看得懂的分类算法,所以今天就给大家写写这个简单实用的分类算法。

决策树的基本流程就是通过一系列只能回答是否的问题将数据进行分类,这种方法还可以很直观地出图,非常适合初学者。

递归分类算法

先看一个概念,递归,今天要写的决策树就是递归分类算法(recursive partitioning algorithm)的一种,所谓递归就是重复,把一个大问题化成可以重复的小问题从而达到问题的解决,决策树就是把一个大问题化成很多个回答是否的小问题,重复重复就把大问题解决了。

其实自己是很不愿意在文章中整过多的专业名词的,但是如果你想深入了解某个领域,想进一步提高姿势水平,这些专业名词肯定得学,所以大家见谅,我尽量会写的非常浅显易懂。

想象一下,人们的通勤工具的分类情形,我们会通过这个工具有几个轮子,有没有发动机,多重等信息来判断工具的类型,知道了这些特征信息,你自己就会在脑海里形成一系列是否问题,达到对交通工具分类的目的,比如你的脑海里形成了像下图一样的流程:

R机器学习:基于树的分类算法的原理及实现

 

先回答这个工具有没有发动机,如果有,再回答多重,如果小于3吨,就是小汽车,大于3吨就是坦克;如果没有发动机,再回答有多少轮子,小于2的话就是独轮车,大于2的话再回答有没有踏板,有则是自行车,无则是小摩托,就是这么一个流程。这就是我们判断交通工具时我们都会用的一个流程,也就是一个决策树,也是你自己的思维的一个过程。

在上面的流程中,问题叫做节点node,最终的分类结局叫做叶leave,那么整个决策树画出来就像一个倒立的树一样,所以叫做决策树,就是这么简单。

对于我们来说,决策树的整个流程中,先问哪个问题至关重要

你想想,先通过交通工具的重量分类和先通过交通工具的轮子分类肯定是不一样的嘛。

那么机器学习中,递归分类算法是如何选择这个顺序的呢?

At each stage of the tree-building process, the rpart algorithm considers all of the predictor variables and selects the predictor that does the best job of discriminating the classes.

一个总的原则就是优先用可以将数据划分为最纯的类的问题作为节点

这个纯度可以用两个指标来衡量,一个是entropy,另一个是Gini index,本文重点介绍Gini index。

用Gini index对树进行划分

所谓最纯就是说通过某个问题划分出的两类,也就是树分叉过后形成的两类,这两类内部的一致性越大越好。Gini index就是纯度的一个指标,在形成树的过程中,我们希望每个节点的Gini index都是最大的。

Gini index的计算公式如下:

R机器学习:基于树的分类算法的原理及实现

 

其中p(A) p(B)是两类在划分过后的数据中的占比。从这儿式子大家也可以悟出来Gini index越大就说明纯度越大。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号Codewar原创作者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值