一、 集成学习:
选择训练多个分类模型,并将各自的预测结果组合起来,可以提高分类问题的预测准确性。分为两类: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的纯度越高,所以要选择的属性是使得基尼指数最小的属性来对数据进行划分。