决策树
决策树是一种有监督学习算法,既可以用于回归问题,也可以用于分类问题。它既适用于分类变量,也适用于连续输入变量和输出变量。
分为:回归树,分类树
生成树状模型方法:Bagging,Random Forests,Boosting
Bagging策略来源于bootstrap aggregation:
- 从样本集(假设样本集N个数据点)中重采样选出Nb个样本(有放回的采样,样本数据点个数仍然不变为N);
- 对N个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC),重复以上两步B次,获得B个分类器;
- 根据这B个分类器的投票结果,进行平均,得到最终的函数模型。
随机森林在bagging的基础上更进一步: - 样本的随机:从样本集中用Bootstrap随机选取n个样本。
- 特征的随机:从所有属性中随机选取K个属性,选择最佳分割属性作为节点建立CART决策树(也可以是其他类型的分类器,比如SVM、Logistics)
- 重复以上两步m次,即建立了m棵CART决策树
- 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)
Boosting于bagging相似,不一样的地方在于这些树不是相互分开独立的,而是连续增长的:每一棵树都是从之前的树生长出来的。Boosting不涉及随机采样,每一棵树都是从之前的树中修改的。
决策树的优点和缺点其有点是便于理解,它贴近于人类做决策的过程,于人类思考方式相似。但是它的准确率不高,数据中小小的扰动就可以使得整个决策树的分类变化。因此对于方差小的数据,使用上述的三种模型方法,可以提高它的准确性。
来源:https://www.datacamp.com/community/tutorials/decision-trees-R
分类树
决策树的构建概括为3个步骤:特征选择、决策树的生成和决策树的修剪
特征的选择
信息增益:在划分数据集之前之后信息发生的变化成为信息增益,获得信息增益最高的特征就是最好的选择。
香农熵的计算方式:
l ( x i ) = − l o g 2 p ( x i ) l(x_i) = -log_2p(x_i) l(xi)=−log2p(xi)
H = − Σ p ( x i ) l o g 2 p ( x i ) H =-\Sigma p(x_i)log_2p(x_i) H=−Σp(xi)log2