理论基础
决策树
决策树是一种树形结构的机器学习算法,所有的样本起始于根节点,每个具有子节点的父节点都有一个判断,根据判断结果将样本向子节点分流,测试样本从根节点开始向下流动,通过判断最终到达某个没有子节点的叶子节点,这个节点就是该样本所属的类别。
例如,判断一个动物是鸭子,狗还是兔子,可以具有以下的决策树:
- 判断是否有四条腿
- 没有,是鸭子
- 有,判断眼睛颜色
- 红色,是兔子
- 非红色,是狗
决策树训练算法
训练决策树时,可以描述如下
- 从父节点找到最优划分属性
- 根据属性划分出子节点
- 若子节点为空/属性相同(无需划分)或样本相等(无法划分),返回,否则返回第一步继续递归划分
找到最优划分属性时,计算按每个属性划分的信息熵,取信息熵最大的属性为最优划分属性
代码实现
载入数据——泰坦尼克号数据导入
import pandas as pd
titan = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt")
print(titan.head())
row.names