决策树算法
2021-06-28 23:05
标签:获取 流程 年龄 信息 解释 机器学习 car src 进一步 例子(怎么构造决策树): Info(D) = -(9/14) * log(9/14) - (5/14) * log(5/14) = 0.940 bits Info_age(D) = (5/14) * (-(2/5) * log(2/5) - (3/5) * log(3/5)) + (4/14) * (0) +(5/14) * (-(3/5)* log(3/5) - (2/5) * log(2/5)) = 0.694 bits 以年龄为分类的信息获取量: Gain(age) = Info(D) - Info_age(D) = 0.940 - 0.694 = 0.246 bits 同理: Gain(income) = 0.029 bits, Gain(student) = 0.151 bits, Gain(credit_rating) = 0.048 bits 所以, 选择age作为第一个根结点. 接着: 可以看到,当age = middle_aged 时,结果全为yes,故这个结点就不需要再往下分了. 对于另外两个结点,重复最初的步骤,选择合适的属性进行往下分 不断重复,一直到分完,或者到达一个限制 ID3算法总结: 1. 树以代表训练样本的单个结点开始 2. 如果样本都在同一个类,则该结点成为树叶,并用该类标号(比较少见) 3. 否则, ID3算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好地将样本分类的属性. 该属性成为该结点的‘测试’或‘判定’属性. 4. 在这个例子中,所有的属性都是分类的,即离散值。若是连续属性必须离散化. 5. 对测试属性的每个已知的值,创建一个分支,并据此划分样本 6. ID3算法使用同样的过程,递归的形成每个划分上的样本判定树。一旦一个属性出现在一个结点上,就不必在该结点的任何后代上考虑它. 7. 递归划分步骤仅当下列条件之一成立停止: (a) 给定结点的所有样本属于同一类 (b) 没有剩余属性可以用来进一步划分样本。在此情况下,使用多数表决. 这涉及将给定的结点转换成树叶,并用样本中的多数所在的类标记它。 1. C4.5 2. CART(Classification and Regression Trees) 共同点:都是贪心算法,自上而下 ID3:信息增益(Information Gain) C4.5:信息增益率(Gain Ratio) --> 信息增益的熵 / 自身熵值 CART:GINI系数(Gini index) 决策树剪枝: 先剪枝 后剪枝 决策树算法 标签:获取 流程 年龄 信息 解释 机器学习 car src 进一步 原文地址:https://www.cnblogs.com/YD2018/p/9648296.html0. 机器学习中分类和预测算法的评估:
- 准确率
- 速度
- 强壮性
- 可规模性
- 可解释性
1. 决策树(decision tree)
决策树是一个类似于流程图的树结构:
- 每个内部结点表示在一个属性上的测试
- 每个分支代表一个属性输出
- 每个树叶结点代表类或类分布
树的最顶层是根结点
2. 构造决策树的基本算法
2.1 熵(entropy)的概念
变量的不确定性越大,熵也就越大
H(x) = -∑(P(x) * log(P(x)))
2.2 决策树归纳算法(ID3)
选择属性判断结点
信息获取量(信息增益)(Information Gain):Gain(A) = Info(D) - Info_A(D) # A是特征(属性)
通过A来作为节点分类获取了多少信息其他算法:
区别:属性选择度量方法不同:
决策树的优点:
直观,便于理解,小规模数据集有效
决策树缺点:
处理连续变量不好(选择的阈值对结果影响很大)
类别较多时,错误增加的比较快
可规模性一般
上一篇:python3 结束进程