【机器学习笔记】Decision Trees(决策树)
内容概述
- 通俗地讲,决策树提出一个问题,然后根据回答者的答案将回答者区分。
- 决策树图中,最上面的只有指出箭头的结点称为“根结点”,中间既有指入又有指出的结点称为“内部结点”,下方只有指入箭头的绿色结点称为“叶结点”。
- 那么决策树应该如何建立呢?
- 根结点该如何选择?
- 作出每个特征的树状图后,通过算法计算出每个特征与心脏疾病的相关性。
- 我们将使用“Gini(基尼)”来比较它们谁更不纯。
- 将根结点确定下来后,确定后续结点同样需要使用Gini不纯系数,并确保每个结点的不纯系数取最小值。
- 上述例子中只使用了布尔值(True or Flase),增加数值后又该如何建立决策树呢?
- 增加选项值后,应该如何计算它的Gini不纯系数?
通俗地讲,决策树提出一个问题,然后根据回答者的答案将回答者区分。
决策树图中,最上面的只有指出箭头的结点称为“根结点”,中间既有指入又有指出的结点称为“内部结点”,下方只有指入箭头的绿色结点称为“叶结点”。
那么决策树应该如何建立呢?
在下面的例子中,我们打算通过Chest Pain、Good Blood Circulation和Blocked Arteries来预测一名患者是否得心脏疾病。
因此,我们需要在三个特征中选择一个作为根结点。
根结点该如何选择?
选择与心脏疾病最相关的特征。
依次对比每个特征列与结果列的每一行数值,作出每个特征的树状图。
比如,某个患者得了Chest Pain,那我们就沿True路径往下走,如果该患者还得了心脏疾病,那么叶结点中的Yes+1,否则No+1。如此类推.....
作出每个特征的树状图后,通过算法计算出每个特征与心脏疾病的相关性。
注意:因为没有一个特征树的叶结点是百分百Yes或者No,所以它们都被认为是不纯的(impure)。
我们将使用“Gini(基尼)”来比较它们谁更不纯。
(说法有点怪怪的///)
1. 通过Figure 1中的算式来算出两个叶结点的Gini不纯系数;
2. 通过Figure 2中的算式来算出根结点(即某个特征)的Gini不纯系数(不纯系数越低越好);
这种算法在后面还会用到。
Figure 1:
Figure 2:
将根结点确定下来后,确定后续结点同样需要使用Gini不纯系数,并确保每个结点的不纯系数取最小值。
上述例子中只使用了布尔值(True or Flase),增加数值后又该如何建立决策树呢?
第一步:对数值进行排序;
第二步:计算每个相邻数值间的平均值;
第三步:计算每个平均值的Gini不纯系数;
增加选项值后,应该如何计算它的Gini不纯系数?
——计算所有选项组合的不纯系数。