一、 集成学习:
选择训练多个分类模型,并将各自的预测结果组合起来,可以提高分类问题的预测准确性。分为两类:bagging算法和boosting算法
Bagging算法通过对样本的有放回抽样,产生多个训练子集,并在每一个子集上训练一个分类器,最终的分类结果由多个分类器的分类结果投票而得。Boosting算法通过顺序的给训练集中的数据重新加权创造不同的基学习器。核心思想是重复利用一个基学习器来对数据集进行修饰,在每次学习过程中,通过计算错误率来对坏的、好的数据进行重新加权,再次计算错误率,最后对每一个分类器的结果进行线性加权得到最终预测效果。
图1 bagging算法流程图
图2 boosting算法流程图
随机森林
随机森林是Bagging算法的一种,算法流程如下:
1. 通过有放回的对m个样本进行m次抽样,有些样本会重复出现,而有些样本会抽不到。
2. 对样本的n维特征进行随机选择出k维特征,k=log2(n),然后从这k维特征,根据基尼指数,选择最优属性对二叉树进行训练。
3. 重复训练所有的树,直到该节点的所有训练样本都属于同一类别。
二、 决策树
决策树是基于树结构来进行决策的方法或模型。决策树的关键是如何选择划分属性来对数据进行分类。一般而言,我们希望随着树的划分,决策树的节点所包含的样本尽可能的都属于同一类别,即节点的“纯度”越来越高。
2.1 信息增益
ID3决策树学习算法就是以信息增益来划分的。“信息熵”的值越小,则样本集D的纯度越高。
离散属性有V个可能的取值,若使用属性a对样本进行划分,则会有V个节点,对第v个节点所包含的样本数为,于是属性a对样本即的信息增益为:信息增益越大,意味着属性a划分D所得样本纯度“提升”越高。
2.2 增益率
信息增益会对节点个数较多的属性有偏好,增益率会对节点个数较少的属性有偏好,C4.5决策树算法就是采用增益率来对属性划分的。
2.3 基尼指数
CART决策树使用基尼指数来选择属性划分,数据集D的基尼值为:
属性a的基尼指数为:基尼指数代表了从数据集D中随机抽取两个样本,其类别标记不一致的概率,所以Gini越小,D的纯度越高,所以要选择的属性是使得基尼指数最小的属性来对数据进行划分。
三 、 连续值处理
连续属性的可取值数目无限,因此不可再用上述可取值来直接对接点划分,采用二分法对连续属性属性处理,C4.5决策树中采用的机制。
给定样本集D,属性a,嘉定属性a在D中有n个不同的取值,将这些取值从小到大排序,找到一个划分点t,
即把中间点作为划分点,然后根据离散值来计算,找到一个最优的划分点。与离散属性不同的是,若当前节点划分为连续属性,它还可作为其后代节点的划分属性。
三、 训练过程详解
数据是400*2的样本集,类别用-1和1来代表。
step1:利用boostrap采样法,对原始数据进行k=2的抽样
step2:利用Gini指数选择最优划分属性和切分点,将数据分为左右子树
step3:重复step2,直至叶子节点
step4:重复step1-step3,生成50,棵CART树
step5:将50棵树的结果进行加和,若超过半数以上和原始数据的标签一致,则认为分类正确