机器学习(1)——决策树

本文介绍了决策树的基本概念,包括其在机器学习中的应用和一个约会选餐馆的事例。接着探讨了决策树学习的基本算法结构,强调了如何找到最佳属性来提问以缩小数据集范围。还讨论了不同类型的决策树结构及其特点,以及过拟合问题的解决方法。最后提到了ID3算法,但详细内容见其他博客。

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

一:决策树的基本概念

1.1 基本概念

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望大于零的概率,评估项目风险、判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。———百度百科

在机器学习(Machine Learning)中,决策树是一种预测模型、它代表的是对象属性与对象值之间的一种映射关系。树中的每个节点表示某个对象属性、每个分叉路径代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所代表的对象的值。

1.2 事例

在讲解之前先举一个决策树的事例——约会选餐馆。我们在选餐馆的时候一般会考虑许多的方面,如下:

  • 是否饥饿?
  • 餐馆是否有空位?
  • 餐馆是什么类型的餐馆?
  • 餐馆是否好吃?
  • 餐馆是否然人举得幸福
  • 。。。

在现实生活中,我们选择餐馆一般是基于多个条件的?要求餐馆既要好吃又不需要等待;要饥饿了才会去选一家不需要等待并且让人感觉幸福的餐厅就餐等等的情况。而这个就是一个典型的决策树的例子。如下图(通过图形来表示该问题的众多种决策树表达中的一种)

约会选餐厅决策树事例

正常的决策树的应该是从上到下显示的,我这里由于没有找到合适的工具所以采用从左到右的方式来显示

这就是将我们选餐馆时的决定用决策树表示的方式。

题外话:对于决策树来说,我们根据决策树判断一个东西是从根节点开始判断的,如果有哪些思维比较开放的小伙伴觉得是从下开始判断的话,对于决策树来说是不对的。决策树规定的从根节点开始判断。

二:决策树学习

2.1 决策树学习的基本算法结构?

2.1.1 20个问题

这里首先请大家做一个小游戏:提问20个问题猜测我心里正在想的东西的游戏,我只能够回答是/不是?如下的列表是我模拟这个游戏的过程?

  • A:它是动物或者生物?
  • B:是。
  • A:他是人吗?(人也是动物啊)
  • B:是的。
  • A:他是一个名人吗?
  • B:是的。
  • A:我们都认识吗?
  • B:不是。
  • A:他已经过世了吗?
  • B:是。
  • 。。。。

    考虑到实际的情况,这里呢我只模拟了一部分内容,并没有把一个完整的过程写出来。剩余的部分可以自己在大脑中模拟一下。

2.1.2 分析

为什么我会选择他是动物或者生物?作为第一个问题提问?而没有先提问他是一个名人吗?这个问题。

分析问题后我们发现我们需要从数以万计的数据集(可以把他想象成一个包含时间万物的数据集)中找到我们想要的答案,并且问题有限,那么我们需要做的是什么,尽可能通过少量的提问就可以将数据集进行拆分,缩小我们查找的范围。所以我们提的每一问题都可以帮我们把这个数据集不断的缩小。而相对于第二个问题,虽然我们将他是一个名人吗?作为第一个问题也是可以的,但是相比前者,它是一个更好的属性将数据分隔开,比前者具有更好的实用性,由于文笔有限,这点可能需要大家在去自己思考一下。在编程层面如何告知机器:怎么比较两个属性那种更好,大家可以首先学习一下信息熵

而从上边我们就可以大概得到我们实现决策树学习的算法结构了,如下:

  1. Find Best Attribute——最好属性,这个我们将在后续的过程中讲解到。
  2. Ask Question?——提出问题。
  3. Follow the answer path.——跟随提问的路径走下去。
  4. 回到1,重复执行所有的操作,知道决策树符合要求。

2.2 几种基本的决策树结构以及特点

2.2.1 n-or

n-or转换为数学表达式是: n1 or n2 or n3 oror nn

如果你用决策树将其表示出来,你会发现这个数会很简单。

2.2.2 n-XOR

n-XOR转换为数学表达式是:

决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值