决策树之基础
一句话概括决策树
决策树就是按照一定的规则构建出的树形结构,实现分类或者回归的功能。
分类决策树
分类决策树的构建
对train set按照其中一个feature在根节点处进行分类,数据被划分到根节点的子节点中,根节点的每一个子节点代表划分数据的feature的一个取值,比如feature有n个取值,那么就分出n个子节点。如果子节点中的子数据集中的每一条数据都对应相同的label,那么这个子节点就停止划分,如果子节点中的数据对应的label不同,那么就按照之前的划分方法,选取另一个feature再进行划分,如此的递归下去,直到每个叶子节点中的数据都拥有相同的label。至此,分类决策树构建完成。
节点划分标准
在上一节构建决策树的内容中,我们只说选取feature进行树的分支处理,但是feature是如何选取的呢?
我们知道,构建决策树的最终目标,就是希望每个叶子节点中的数据都是同一个label。也就是说,我们希望按照某个feature划分后的数据,以label为参考系时候是整整齐齐的,比如我们分西瓜,就是说,我们希望把熟透的分在一支,没熟的分在一支。那么我们口语中的整整齐齐,就对应了一个划分数据的衡量标准,我们希望数据的混乱度是下降的,也就是希望数据的熵减的。我们定义了一种计算数据按照某个feature划分前后熵值变化大小的方法,即为信息增益。这种按照信息增益作为划分标准的决策树构建方法叫做ID3(Iterative Dichotomiser 3)。
ID3
ID3就是以信息增益作为树构建标准的决策树方法。
一句话解释信息增益:
信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。
定义 :
特征A对训练数据集D的信息增益g(D,A),定义为集合D的熵H(D)与特征A给定条件下D的条件熵H(D|A)之差,即:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)
1.设训练数据集是 D D D, ∣ D ∣ |D| ∣D∣表示样本个数。
2.设有数据集有K个label,也就是说数据集有K个类 C k , k = 1 , 2 ⋯ K { C }_{ k },k=1,2\cdots K Ck,k=1,2⋯K, ∣ C k ∣ |C_k| ∣Ck∣为属于类 C k C_k Ck的样本个数,有 ∑ k = 1 K ∣ C k ∣ = ∣ D ∣ \sum _{ k=1 }^{ K }{ |{ C }_{ k }| } =|D| ∑k=1K∣Ck∣=∣D∣。
3.设特征A有n个不同的取值 { a 1 , a 2 ⋯ a n } \left\{ { a }_{ 1 },{ a }_{ 2 }\cdots { a }_{ n } \right\} {
a1,a2⋯a