1 min read

决策树理论部分 学习笔记

从零开始学人工智能(12)–Python · 决策树(零)· 简介

决策树的理解,理解了,数字代表是变量,如\(X_i\),第\(i\)个变量。 考虑之后可以复盘、做图。

从零开始学人工智能(13)–Python · 决策树(一)· 准则

输入一个数据

根据数据的某个特征来把数据分成好几份

如果分完数据后发现

  • 某堆数据里面某一个类别的数据占相当大多数1,就不再分隔这堆数据、直接输出类别
  • 某堆数据还很“混乱无序”,那么就这堆数据就要继续分下去(转第 2. 步)

大概就这三步。可以发现,大部分时间都是根据某个“准则” 2来进行操作的,所以怎样选择这个准则就成了至关重要的问题。

为什么定义\(\frac{ent_{N}}{len(label)}\),因为\(N = 1,..,N\)表示是改节点变量\(X\)的level情况。 len(label)表示数据表的行数。

这个没看懂,但是不重要,往后走!

信息增益。这是决策树生长的重点,但有了上面两个函数之后,根据定义的话、直接条件熵减去熵就行(或者更宽泛地说、是混乱程度减去条件混乱程度),最多再做一些小的改动。

从零开始学人工智能(14)–Python · 决策树(二)· 节点

最后分的最干净,也是最理想的方式。 这里面没讲什么。

数学 · 决策树(二)· 信息增益

所以,如果条件熵\(H(Y | A)\)越小,就意味着 \(Y\)\(A\) 分开后的总的混乱程度越小、从而意味着 \(A\) 更能够帮助我们做出决策。

\[H(Y|A) = -\sum_{i = 1}^n p_i \sum_{k = 1}^K p_{i,k}\log_2 p_{i,k}\]

信息增益:

\[g(Y,A) = H(Y) - H(Y|A)\]

因此信息增益低,说明不需要再\(|A\)了。

根据信息增益判断是否终止(比如在 ID3 中,如果信息增益小于阈值的话就直接终止。这种判断方法会有比较严重的缺陷。

prune 函数: 核心思想其实就是把该 node 变成一个 leaf

从零开始学人工智能(16)–Python · 决策树(四)· 树

Python具体的code不太清楚,但是至少现在决策树的理论部分、node、leaf、prune(node \(\to\) leaf)、信息增益都搞懂了。


  1. 说明异质性很低了。

  2. Gini系数和信息熵的解释。 (数学 · 决策树(一)· 混乱程度 )