StatQuest生物统计学专题 - 决策树(1)
目录
决策树是什么决策树构建方法
决策树是什么
决策树(Decision Tree)是一种有监督分类机器学习算法,它通过非常简单的计算就可以从已知数据中得出一个决策树,这个决策树就可以用于解决实际的问题。
如下图就是一个决策树,决策树里面的数据可以是分类数据,也可以是数值数据。
一般将最上面的节点称为Root Node,中间的节点称为Internal Nodes或Nodes,最下面的节点称为Leaf Nodes。
为了便于理解,我们可以把根节点(Root)和内部节点(Internal Nodes)理解为“自变量”,而叶节点(Leaf Nodes)称为“因变量”。
正是通过根节点和内部节点的计算,得到了最终结果(叶节点)。
决策树构建方法
决策树是一种有监督机器学习算法,所以需要一个已知数据用于计算,这种数据分为两部分:我们可以分别将其理解为“自变量”和“因变量”。
决策树的构建方法:
首先从根节点开始,逐一尝试所有选项(自变量),并选择一个最佳的选项作为根节点;
然后限定根节点,再逐一尝试剩余选项(自变量),并选择一个最佳的选项作为内部节点;
以此类推,直到完成全部的节点构建。
下面是一个例子:
希望通过如下数据的Chest pain、Good Blood Circulation以及Blocked Arteries来得出一个决策树,以用于预测病人是否有Heart Disease。
这里的Chest pain、Good Blood Circulation以及Blocked Arteries就是自变量,而Heart Disease就是因变量。
先从第一步开始——得到最佳的根节点
要想获得根节点,那么就分别将Chest pain、Good Blood Circulation以及Blocked Arteries作为根节点,然后看此时的分类情况,谁最好就选谁。
如图所示,已经得到三个参数分别为根节点时的决策树,那么究竟哪一个最好呢?
有很多方法去衡量三个分类树的优劣,这里使用一种叫做Gini的方法,Gini用于衡量每一个决策树的impurity(不纯净度),Gini值越低越好,它的计算非常简单:
Gini impurity=1-(1-probability of "Yes")^2-(1-probability of "No")^2
比如对于Chest pain决策树来说,
左侧Gini impurity=1-(105/(105+39))^2-(39/(105+39))^2=0.395
右侧Gini impurity=1-(34/(34+125))^2-(125/(34+125))^2=0.336
由于左右两侧的样本数是不一样的,左侧为144个病人,右侧为159个病人,再将左侧Gini impurity和右侧Gini impurity加权平均即可。
所以,
Gini impurity=(144/(144+159))*0.395-(159/(144+159))*0.336=0.364
同样方法就可以得到剩余两个决策树的Gini impurity值。
由于Good Blood Circulation的Gini值最小,所以最佳的根节点是Good Blood Circulation。
限定根节点为Good Blood Circulation,同样方法找到最佳的内部节点
同样的方法,先从左侧分支开始,
左侧分支分别使用Chest Pain和Blocked Arteries进行决策树构建,然后计算相应的Gini impurity值。
如下图,Blocked Arteries的Gini值更小,因此将Blocked Arteries作为左侧分支下的二级节点。
继续限定二级节点为Blocked Arteries,完成最终的左侧分支
目前只剩下Chest Pain没有使用,我们逐一带入Chest Pain,
对于左侧的24/25来说,Chest Pain进一步分为17/3,7/22。
对于右侧的13/102来说,Chest Pain进一步分为7/26,6/76。
我们可以发现,对于左侧分支,Chest Pain进一步分为17/3,7/22,要比原来的24/25的区分效果要好,因为24/25几乎是没有区分效果,两者数量几乎相同。
但是右侧分支不同,13/102的区分效果已经比较好了,此时的Gini值为0.2,然而进一步区分之后,经过计算Gini值为0.29,因此右侧分支不再进一步区分。
最终按照同样的方法获得整个决策树
如下图所示:
本周的决策树就到这里,下周继续关注决策树,探讨数值数据以及多分类数据的决策树构建、缺失值的处理方法等问题。
专题以往文章
参考资料
StatQuest课程:https://statquest.org/video-index/
猜你喜欢
生信菜鸟团-专题学习目录(6)
生信菜鸟团-专题学习目录(7)
还有更多文章,请移步公众号阅读
▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。
▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。