data mining - 实用机器学习工具与技术 读书笔记 ( 三 )

本文详细阐述了决策树的理论依据,解决的常用问题,以及如何实现一棵决策树。通过具体的例子,如挑硬币问题和信件传递问题,深入浅出地解释了决策树的概念和工作原理。

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

Decision Tree , 决策树:
1) 理论依据是什么?
2) 解决哪些常用的问题?
3) 如何实现一棵决策树?

还是以书中常用的例子,天气数据

这里写图片描述

第一步是列出所有的可能的树节点与结果的关系,节点是 attribute 的各种可能值,叶节点存储的是每个值对应的结果。

这里写图片描述

那么还是要参考 《 Discrete Matchmatics and its applications 》 离散数学及其应用这本书。

书中有这么一个例子:

Suppose there are seven coins, all with the same weight, and a counterfeit coin that weighs less than the others. How many weighings are necessary using a balance scale to determine which of the eight coins is the counterfeit one ?

大意是: 有 7 个相同重量的硬币,和 1 个轻一些的假币。如何从中用天平称量出假币, 最少要几次?

答案是 2 次:如图示:

这里写图片描述

为了方便理解这棵树,有几个概念需要理一下:

1 - Vertices : 泛指所有的顶点与树叶节点
2 - Internal Vertices: 泛指有子节点的顶点
3 - m-Ary: 所有子节点不超过 m 个的树
4 - full m-Ary : 所有顶点都包括 m 个节点的树

关于 Full M-Ary : M [2) 有三则公式可以推导。
假设 m 代表 M-Ary 中的 M, 表示几个子节点,n 代表总共含有的 vertices, i 代表 internal vertices, L 代表页级节点
1) n=mi+1
2) i=(n1)m
3) L=ni=n(n1)m=mn(n1)m=n(m1)+1m

其他公式兼可以由此推断出来。

书中有个例子也是非常深入浅出

Suppose that someone starts a chain letter. Each person who receives the letter is asked to send in on to four other people. Some people do this, but others do not send any letters. How many people have seen the letter, including the first person, if no one receives more than one letter and if the chain letter ends after there have been 100 people who read it but did not send it out, how many people sent out the letter.

当 1 个人拿到一封信之后, 可以选择传给另外的其他 4 个人, 也可以不传。 拿到信的那个人,继续选择传给另外 4 个人,或者选择不传。 假设 1 个人只能拿到一次信,并且有 100 个人读过了这封信并且没有再次传出来, 那么有多少人是看到过这封信的(包括第一个传信的人) ?又有多少是传出来的 ?

n : 代表所有拿到这封信的人;
m: 代表 4
i: 代表将信传出来的人
l :代表没有将信传出来的人 ,显然这里是 100 = n(m1+1)m = > n = 133
那么 n = m*i + 1 = 133 => i = 33

关于平衡树, Balanced M-Ary Tree

1) root 代表的是 0 , 那么 第一级可以表示为 L1, 第二级 L2, 以此类推, Ln
2) Height of the tree: 最深一级的 Leaf 就是这棵树的 Height.
3) 如果所有的 Leaf 高度都一样,那么就是平衡树。
4)从平衡树的角度来考虑, 一棵树最多含有 mh 个页级点。这是个以 m 进制考虑的等比数列问题。
root 为 m0 = 1 , L1 = m1 = m, L2 = m2 , Lh = mh

所以刚开始的挑硬币的问题,应该可以归纳为 log38 的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dbLenis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值