决策树是一种基本的分类算法,呈树形结构,优点是具有可读性,分类速度快。
1决策树学习通常包括3个步骤:特征选择、决策树生成和决策树的修剪。
其描述:从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到它的子节点中。这时,每一个子节点对应着特征的一个取值。直到叶节点。最后将实例分到叶节点的类中。
2.if-then规则:路径上内部结点的特征对应着规则的条件,而叶节点的类对应着规则的结论。你是什么样的人就会选择什么样的道路,最终,当你走向死亡,墓碑上清清楚楚的记录了这一生的种种选择,而这些选择就定义了你这样一个人。
这些规则有着一个非常重要的性质:互斥并且完备,这就是说。每一个例子都被且只被一条路径或者规则所覆盖。覆盖的意思就是指例子的特征与路径上的特征一致或者就是规则条件满足吧。
一般决策树的分类会与条件概率分布有关。条件概率分布可以表示为p(y|x),其中x表示特征的随机变量,而Y表示类的随机变量。那么这个条件概率分布可以表示为P(Y|X),意思就是根据特征选择类别。还是契合之前的性质。每个单元条件概率偏向于某一个类,某个类的条件概率比较大的话,那么决策树分类时将该结点强行分类到条件概率较大的那一类中去。
3.决策树学习:何为学习,学习就是训练模型,就是从训练数据集中归纳出一组分类规则。我们拿到一组训练数据,那么与这个训练数据相匹配的决策树可能有很多,可能一个都没有。我们需要训练一个与训练数据矛盾最小的决策树,同时也要具有很好的泛化能力。
决策树学习用损失函数表示这一目标。损失函数选择的就是正则化的极大似然函数。所以,后面的工作就是最小化目标损失函数喽。故事的背景与其他英雄类似,从所有可能的决策树中选择出最优决策树是NP完全问题(NP的锅),而决策树的学习算法通常采用启发式,近似求解,这样就得到的决策树是次优的。
4.具体步骤:通常是递归的选择最优特征,开始,构建根节点,将所有训练数据放在根节点,选择一个最优特征,按照这个特征将训练数据集分割成一个个的子集。尽量使得有个好的分类,如果这些子集已经能够被基本分类正确了,好啦,这就是结果了,就构建叶节点,将子集划分到对应的叶节点中去。如果还有子集不能正确分类的话,那就继续对这些子集选择新的最优特征,进行新分割,如此递归,直至所有的训练子集被基本正确分类或者直到没有合适的特征为止。
但是很有可能,这会发生过拟合现象,因此必要的剪枝就产生了。它可以使得我们的树更加的简单,从而具有更好的泛化能力。具体就是,如果有的结点分的太细了,那么将他去掉,退回父节点,使父节点变成新的叶节点。(剪枝的产生原因哦~)
如果特征数量太多的话,也要对特征进行选择哒。
总述一下,决策树是一个集特征选择,决策树生成和修剪于一身的模型。决策树的生成只考虑了局部最优,而剪枝则考虑了全局最优。