【机器学习笔记】Decision Trees(决策树)

内容概述


 

通俗地讲,决策树提出一个问题,然后根据回答者的答案将回答者区分

决策树图中,最上面的只有指出箭头的结点称为“根结点”,中间既有指入又有指出的结点称为“内部结点”,下方只有指入箭头的绿色结点称为“叶结点”。

那么决策树应该如何建立呢?

在下面的例子中,我们打算通过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不纯系数?

——计算所有选项组合的不纯系数。

发布了153 篇原创文章 · 获赞 184 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/Ha1f_Awake/article/details/102940883