1 min read

学习笔记:决策树理论部分 学习笔记

学习笔记 系列导航

1 Hive/Impala 学习笔记 2017-12-04
2 KS 学习笔记 2017-12-06
3 datacamp pandas DataFrames 学习笔记 2017-12-11
4 datacamp pandas Merging DataFrames 学习笔记 2017-12-13
5 Databases in Python 学习笔记 2017-12-14
6 Data Visualization with Python 学习笔记 2017-12-16
7 Exploratory data analysis in Python 学习笔记 2017-12-17
8 Statistical Thinking in Python (Part-2) 学习笔记 2017-12-18
9 list comprehensions in Python 学习笔记 2017-12-19
10 无监督学习:Unsupervised Learning in Python 学习笔记 2017-12-20
11 学习笔记:Deep Learning in Python 学习笔记 2017-12-22
12 学习笔记:Python 学习的流水笔记 2017-12-25
13 学习笔记:Network Analysis in Python Part 1 学习笔记 2017-12-27
14 学习笔记:XGBoost using Python 学习笔记 2017-12-28
15 学习笔记:Supervised Learning with scikit-learn 学习笔记 2017-12-30
16 学习笔记:Boosting理论部分 学习笔记 2018-01-02
17 学习笔记:Machine Learning with the Experts School Budgets 学习笔记 2018-01-02
18 学习笔记:犯罪心理解析 2018-01-02
19 学习笔记:Shell 学习笔记 2018-01-04
20 学习笔记:客户价值定价 学习笔记 2018-01-04
21 学习笔记:Introduction to Git for Data Science 学习笔记 2018-01-06
22 学习笔记:线性代数 整理笔记 2018-01-08
23 学习笔记:退火算法 学习笔记 2018-01-09
24 学习笔记:Fahrenheit 911 视频笔记 2018-01-18
25 学习笔记:pandas debugging 学习笔记 2018-01-19
26 学习笔记:brilliant.org概率论导论 学习笔记 2018-01-22
27 学习笔记:Machine Learning with Tree-Based Models in R 学习笔记 2018-01-22
28 学习笔记:Building Web Applications in R with Shiny 学习笔记 2018-01-25
29 学习笔记:Inference for Numerical Data 学习笔记 2018-01-26
30 学习笔记:Support Vector Machines SVM 学习笔记 2018-01-26
31 学习笔记:Introduction to DataCamp Projects 学习笔记 2018-01-28
32 学习笔记:Working with Web Data in R 学习笔记 2018-01-28
33 学习笔记:三种平均数使用的方式 学习笔记 2018-01-29
34 学习笔记:戒律的复活 每周六更新 2018-01-29
35 学习笔记:Communicating with Data in the Tidyverse 学习笔记 2018-01-31
36 学习笔记:Kaggle R Tutorial on Machine Learning 学习笔记 2018-02-01
37 学习笔记:Kaggle Python Tutorial on Machine Learning 学习笔记 2018-02-02
38 技术:ggridges 山峦图 学习笔记 2018-02-02
39 技术:XGBoost 学习笔记 2018-02-02
40 学习笔记:圆桌派 第三季 视频笔记 2018-02-05
41 学习笔记:基础与技巧整理 2018-02-25
42 集成学习R SuperLearner包学习笔记 2018-03-04
43 学习笔记:英语学习积累:词汇、表达与语法整理 2018-04-09
44 技术:原理与应用学习笔记 2018-04-29
45 学习笔记:魏剑峰英语学习笔记:表达与语法整理 2018-05-02
46 技术:方法与实践学习笔记 2018-05-12
47 无监督学习:主成分分析(PCA)原理与实现学习笔记 2018-05-17
48 技术:特征筛选学习笔记 2018-05-29
49 学习笔记:Planet Money播客学习笔记:经济学话题解析 2018-06-05
50 基础算法系列梯度下降算法详解:原理与优化学习笔记 2018-07-11
51 技术:统计建模学习笔记 2018-07-24
52 技术:指标设计学习笔记 2018-09-20
53 技术:安装与使用基础学习笔记 2018-11-07
54 📈 ggplot 设计思路 学习笔记 2019-12-26
55 🧩 Python 函数编写学习笔记 2019-12-31
56 技术:特征工程之目标编码学习笔记 2020-01-20
57 📚 词向量 学习笔记 2020-07-04
58 主题模型:学习笔记 2020-07-04
59 学习笔记:WSJ 学习笔记 2020-10-19
60 健身:学习笔记 2025-08-19

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

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

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

输入一个数据

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

如果分完数据后发现

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

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

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

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

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

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

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

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

所以,如果条件熵H(Y|A)越小,就意味着 YA 分开后的总的混乱程度越小、从而意味着 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 leaf)、信息增益都搞懂了。


  1. 说明异质性很低了。↩︎

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

学习笔记 系列导航

1 Hive/Impala 学习笔记 2017-12-04
2 KS 学习笔记 2017-12-06
3 datacamp pandas DataFrames 学习笔记 2017-12-11
4 datacamp pandas Merging DataFrames 学习笔记 2017-12-13
5 Databases in Python 学习笔记 2017-12-14
6 Data Visualization with Python 学习笔记 2017-12-16
7 Exploratory data analysis in Python 学习笔记 2017-12-17
8 Statistical Thinking in Python (Part-2) 学习笔记 2017-12-18
9 list comprehensions in Python 学习笔记 2017-12-19
10 无监督学习:Unsupervised Learning in Python 学习笔记 2017-12-20
11 学习笔记:Deep Learning in Python 学习笔记 2017-12-22
12 学习笔记:Python 学习的流水笔记 2017-12-25
13 学习笔记:Network Analysis in Python Part 1 学习笔记 2017-12-27
14 学习笔记:XGBoost using Python 学习笔记 2017-12-28
15 学习笔记:Supervised Learning with scikit-learn 学习笔记 2017-12-30
16 学习笔记:Boosting理论部分 学习笔记 2018-01-02
17 学习笔记:Machine Learning with the Experts School Budgets 学习笔记 2018-01-02
18 学习笔记:犯罪心理解析 2018-01-02
19 学习笔记:Shell 学习笔记 2018-01-04
20 学习笔记:客户价值定价 学习笔记 2018-01-04
21 学习笔记:Introduction to Git for Data Science 学习笔记 2018-01-06
22 学习笔记:线性代数 整理笔记 2018-01-08
23 学习笔记:退火算法 学习笔记 2018-01-09
24 学习笔记:Fahrenheit 911 视频笔记 2018-01-18
25 学习笔记:pandas debugging 学习笔记 2018-01-19
26 学习笔记:brilliant.org概率论导论 学习笔记 2018-01-22
27 学习笔记:Machine Learning with Tree-Based Models in R 学习笔记 2018-01-22
28 学习笔记:Building Web Applications in R with Shiny 学习笔记 2018-01-25
29 学习笔记:Inference for Numerical Data 学习笔记 2018-01-26
30 学习笔记:Support Vector Machines SVM 学习笔记 2018-01-26
31 学习笔记:Introduction to DataCamp Projects 学习笔记 2018-01-28
32 学习笔记:Working with Web Data in R 学习笔记 2018-01-28
33 学习笔记:三种平均数使用的方式 学习笔记 2018-01-29
34 学习笔记:戒律的复活 每周六更新 2018-01-29
35 学习笔记:Communicating with Data in the Tidyverse 学习笔记 2018-01-31
36 学习笔记:Kaggle R Tutorial on Machine Learning 学习笔记 2018-02-01
37 学习笔记:Kaggle Python Tutorial on Machine Learning 学习笔记 2018-02-02
38 技术:ggridges 山峦图 学习笔记 2018-02-02
39 技术:XGBoost 学习笔记 2018-02-02
40 学习笔记:圆桌派 第三季 视频笔记 2018-02-05
41 学习笔记:基础与技巧整理 2018-02-25
42 集成学习R SuperLearner包学习笔记 2018-03-04
43 学习笔记:英语学习积累:词汇、表达与语法整理 2018-04-09
44 技术:原理与应用学习笔记 2018-04-29
45 学习笔记:魏剑峰英语学习笔记:表达与语法整理 2018-05-02
46 技术:方法与实践学习笔记 2018-05-12
47 无监督学习:主成分分析(PCA)原理与实现学习笔记 2018-05-17
48 技术:特征筛选学习笔记 2018-05-29
49 学习笔记:Planet Money播客学习笔记:经济学话题解析 2018-06-05
50 基础算法系列梯度下降算法详解:原理与优化学习笔记 2018-07-11
51 技术:统计建模学习笔记 2018-07-24
52 技术:指标设计学习笔记 2018-09-20
53 技术:安装与使用基础学习笔记 2018-11-07
54 📈 ggplot 设计思路 学习笔记 2019-12-26
55 🧩 Python 函数编写学习笔记 2019-12-31
56 技术:特征工程之目标编码学习笔记 2020-01-20
57 📚 词向量 学习笔记 2020-07-04
58 主题模型:学习笔记 2020-07-04
59 学习笔记:WSJ 学习笔记 2020-10-19
60 健身:学习笔记 2025-08-19