一、决策树通俗到深入理解
我们知道决策树可以用来分类,同样可以用来回归,我们主要其应用于分类的情况,回归其实是相似的。
举一个例子,一家银行要确定是否给用户发信用卡,那么它要根据用户的基本信息来确定是否要发给这个用户,假设我们知道用户的信息如下:
年龄 |
是否有工作 |
是否有自己的房子 |
信贷情况 |
性别 |
青年、中年、老年 |
是、否 |
是、否 |
差、非常差、一般、好、非常好 |
男、女
|
分类的结果当然是:发信用卡,不发信用卡
如果学过逻辑回归算法的话,我们知道,它是把这些特征进行加权之后的和然后带入sigmod函数,求出一个概率,然后根据概率的大小来判定分类的结果。
那么决策树是怎么进行分类的呢?
决策树和人类进行做决策的是否的思维非常相似,我们考虑当前样本的情况的各个特征的值,逐个筛选,最后给出一个决策结果,其过程如下图:
例如,银行首先要看这个人有没有房,如果没房子,然后再看这个人年龄在什么阶段,如果是青年,则代表其有潜力,给他发信用卡,如果是中年,则代表可能没有能力去偿还信用卡债务,则不发信用卡。
决策树的决策过程,其实就是一个个的 if-then规则的组合,从根结点一直到叶子节点的,相当于一条规则的路径。
我们同样可以从另外一个角度来理解其理论意义,决策树还表示给定特征条件下类的条件概率分布。下面解释原因,我们知道,任何一个机器学习模型都需要从样本中学习模型的参数,决策树同样不例外,当样本训练完毕之后会一个一个的落入到叶子节点,上面我们已经说过从根结点到叶子节点是一个个的规则的组合,规则其实就是条件,也就是说,落入到同一个叶子节点的这些样本,是原始的样本总集中符合了若干条件下(规则路径)的样本子集,那么落入同一个叶子节点的样本可能不完全属于某一类,但是肯定是大部分是同一类,只有少量是另外类别,假设如例子中我们的类别是两类,有可能是10个样本落入叶子节点,8个是发,只有两个是不发,那么这个叶子节点的类别就是发。也就是说落入同样的叶子节点的这些样本可以这样解释,在同样的条件下,发的概率是80%,不发的概率是20%,我们选择那个条件概率最大的类别作为叶子节点的类别,这就是决策树于条件概率的关系。
二、特征选择
李航的《统计学习方法》中说,方法=模型+策略+算法,模型其实就是我们说的假设函数,比如线性回归模型,逻辑斯特回归模型,决策树模型等等,策略是损失函数,均方差,最大熵等等,算法就是优化损失函数的方法,比如梯度下降,拟牛顿等等。
在上面的论述中,我们知道了决策树是一个由很多的中间节点组成的分叉口,最后落入到叶子节点,输出结果。那么问题就来了,我们怎么构建一颗决策树呢?它的损失函数是什么呢?要理解决策树的损失函数,我们先来看看怎样构建一棵决策树。
构建决策树的算法通常是递归第选取最优的特征,并根据该特征对训练数据分割,各个子数据集有一个最好的分类过程,如果子数据集已经能