机器学习—基础算法四
随机森林、bagging
bagging
- 过程
- 从样本集中重采样选出n个样本
- 在所有属性上,对这n个样本建立分类器(ID3,C4.5,CART,SVM,Logistic Regression)
- 重复以上两步m次,即获得m个分类器
- 将数据放在m个分类器上,最后根据m个分类器的投票结果决定数据属于哪一类
- 每次约有36.79%的数据未参与模型训练,这部分数据称为袋外数据(OOB),可取代训练集
样本不平衡常用处理方法
- 假定A类样本数目比B类多,且严重不平衡
- A类欠采样(Undersampling)
- 随机欠采样
- A类分成若干子类,分别与B类进入ML模型
- 基于聚类的A类分割
- B类过采样(Oversampling)
- 避免欠采样造成的信息丢失
- B类数据合成(Synthetic Data Generation)
- 随机插值得到新样本
- SMOTE
- 代价敏感学习(Cost Sensitive Learning)
- 降低A类权值,提高B类权值
- A类欠采样(Undersampling)
随机森林
- 基于bagging
- 过程
- 从样本集中用Bootstrap采样选出n个样本
- 从所有属性中随机选择k个属性,选择最佳分割属性作为结点建立CART决策树
- 重复以上两步m次,建立m棵CART决策树
- 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类
- 随机森林的随机是指样本和特征随机选择
- 用RF计算样本间的相似度
- 原理:若两样本同时出现在相同的叶结点的次数越多,二者越相似
- 过程
- 记样本个数为N,初始化N×N的零矩阵S,S[i,j]表示样本i和样本j的相似度
- 对于m棵决策树形成的随机森林,遍历所有决策树的所有叶子结点,对于每个叶结点,每两个样本i,j,若同时存在该结点中,则 s i j + = 1 s_{ij}+=1 sij+=1
- 遍历结束后,S为样本间相似度矩阵
- 用RF计算特征重要度
- 是常用的衡量特征重要性的方法
- 计算正例经过的结点,使用经过结点的数目、经过结点的gini系数和等指标
- 随机替换一列数据,重新建立决策树,计算新模型的正确率变化,从而考虑这一列特征的重要性
- 优点:
- 抗过拟合
- 容易做成并行化方法