2018年10月9日 下午10:47
算法杂货铺——分类算法之决策树(Decision tree) - T2噬菌体 - 博客园
没有明白的问题:
特征属性为连续值时,如何使用ID3算法,没看懂
有个问题是:如何证明ID3和C45是可行的?
这个问题我现在认为不是我应该思考的问题。这个问题要从数学的角度去解决。而我更应该关注的是什么问题呢?首先决策树的一定是:判定条件是量化的
决策树中的每个“结构元素”代表着啥?
- 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。
- 其每个非叶节点表示一个特征属性上的测试,
- 每个分支代表这个特征属性在某个值域上的输出,
- 而每个叶节点存放一个类别。
- 使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并 按照其值选择输出分支 ,直到到达叶子节点,将 叶子节点存放的类别作为决策结果 (这其中体现了从值——>类别的转换过程,是在叶子节点上完成的)
构造决策树的关键性内容:
- 进行属性选择 度量
- 属性选择度量算法有很多,
- 一般使用自顶向下递归分治法,并采用不回溯的贪心策略 。
- 这里介绍ID3和C4.5两种常用算法。
- 属性选择度量是一种选择分裂准则,是将给定的类标记的训练集合的数据划分D“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split_point的选择
- 属性选择度量算法有很多,
- 进行属性选择 度量
分裂属性分为三种不同的情况:
- 属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
- 属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
- 属性是连续值。此时 确定一个值作为分裂点split_point ,按照>split_point和<=split_point生成两个分支。
ID3和C45的不同:
- ID3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。
如果属性用完了怎么办?
- 一般对这些子集进行“多数表决”
减枝
- 目的:处理由于数据中的噪声和离群点导致的过分拟合问题
- 分类: 先剪枝+后减枝