贝叶斯: numeric attributes
决策树
优点
某种形式的树可能仍然是最流行的data mining
易于理解
易于实施
易于使用
可以分类可以回归,可用于大数据的处理。
例子
例子
在N中需要多少个M来分类,N个特征,thresold function
判断三个var里面T两个
树真值表的重新表示,将有2^d叶子。通过考虑具有相同Y值的一行或多行之间的共同点,可以实现更紧凑的树
但有些布尔函数可能无法实现紧凑树(例如奇偶函数和多数函数)
一般来说,尽管原则上可以表示任何布尔函数,但搜索和先验限制可能不允许我们在实践中找到正确的树
决策树可能不稳定,因为数据中的细微变化可能会导致生成完全不同的树。通过使用集成中的决策树可以缓解此问题。
在最优性的几个方面,甚至对于简单的概念,学习最优决策树的问题都被认为是NP完全的。因此,实用的决策树学习算法基于启发式算法(例如贪婪算法),其中在每个节点上做出局部最优决策。这样的算法不能保证返回全局最优决策树。可以通过在集成学习器中训练多棵树来缓解这种情况,在该学习器中,特征和样本将通过替换随机抽样。
Top-Down Induction of Decision Trees (TDIDT)
之前写的ID3链接
熵的例子,和概念,很简单链接
在老师的例子中最后选择A1因为A1的熵比较大,作为节点。
CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(率)相反。
之前熵的时候不是谁大谁乱就选谁做节点么,现在Gini就是选小的。
顾名思义,修剪发生在生成一棵树后(并且在没有下文所述的提前停止的情况下),它可能会过拟合。 CART算法将反复将数据划分为越来越小的子集,直到这些最终子集在结果变量方面是同质的为止。实际上,这通常意味着最终的子集(称为树的叶子)每个仅包含一个或几个数据点。树已经准确地学习了数据,但是可能无法很好地预测出非常微小的新数据点。
停止条件
如果我们继续使树完全生长直到每个叶节点对应最低的杂质,那么数据通常会过拟合。如果过早停止拆分,则训练数据的错误不会足够高,并且由于bais会影响性能。因此,在对决策树进行建模时,防止过度拟合和欠拟合是至关重要的,可以通过以下两种方式完成:
- 对树大小设置约束
- 修剪树木
对树大小设置约束:
为节点拆分提供最少数量的样本。
为终端节点(叶)部署最少数量的样本。
允许树的最大深度(垂直深度)。
终端节点的最大数量。
拆分要考虑的最大功能。
修剪树:
修剪是机器学习中的一种技术,它通过删除树的部分来减小决策树的大小。它还降低了最终分类器的复杂度,因此通过减少过度拟合提高了预测准确性。可以通过预修剪或后修剪两种方式完成树修剪。
-预先整理:
如果当前节点没有将熵至少提高到预设(阈值),则停止拆分当前节点。
如果数据点的数量小于某些预设(阈值)值,就停止分区。
将树的深度限制为某个预设(阈值)值。
-修剪后:
可以通过首先允许树生长到最大潜力,然后在计算每个级别的交叉验证准确性之后修剪每个级别的树来完成此操作。
CART的优势:
决策树可以固有地执行多类分类。
它们提供了大多数模型可解释性,因为它们只是一系列if-else条件。
他们可以处理数值和分类数据。
特征之间的非线性关系不会影响决策树的性能。
CART的缺点:
数据集的微小变化会使树结构不稳定,从而导致差异。
如果某些类不平衡,决策树学习者将创建欠适应树。 因此,建议在与决策树拟合之前平衡数据集
树并不是无偏的,
H这里显示的所有可能的Tree
但是显示情况是,首选短树,以及在根附近具有高信息增益属性的树。归纳偏差是对某些假设的偏好,而不是对假设空间H的限制。
树的过拟合Greedy search可能找到的是local opt miss最好的。
防止过度拟合的另一种方法是,在生成带有很小样本的叶子之前,尽早停止树木的构建过程。这种启发式方法称为早期停止,但有时也称为预修剪决策树。
在分割树的每个阶段,我们都会检查交叉验证错误。如果错误减少的幅度不够大,则我们停止。提前停止可能会因过早停止而导致不适。当前的分割可能没有什么好处,但是在进行分割之后,后续的分割会大大减少错误。
提前停止和修剪可以一起使用,也可以分开使用,或者根本不使用。修剪后的决策树在数学上更加严格,找到的树至少与早期停止一样好。提前停止是一种快速解决方案
Pg33
Reduced Error Pruning
这种方法由Quinlan提出。这是决策树修剪中最简单,最容易理解的方法。该方法认为树中的每个决策节点都是修剪的候选,包括删除以该节点为根的子树,使其成为叶节点。可用数据分为三个部分:
训练示例
用于修剪树的验证示例
以及一组测试示例
用于提供对将来看不见的示例的准确性的无偏估计。如果新树的错误率等于或小于原始树的错误率,并且该子树不包含具有相同属性的子树,则将子树替换为叶节点,这意味着修剪已完成。否则不要修剪它。这种方法的优点是线性计算复杂度。当测试集比训练集小得多时,该方法可能会导致过度修剪。
error e悲观误差估计
f actural error
N number of examples
Zc constant confidence
子节点比自己的叶子小,删除。