算法过程
- N个训练样本,M个特征
- 选定特征数目m作为每个决策树的特征,m<<M
- 训练多个决策树(两个随机性)
训练集随机从数据集有放回抽样,得到与数据集一样大的训练集(每抽完就训练一棵树)
每棵决策树从M中随机挑m个特征
不剪枝 - 数据放入训练好的森林,看它被每棵树分类到哪一类,被分到最多的一类作为结果输出
优点
- 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合
- 两个随机性的引入,使得随机森林具有很好的抗噪声能力
- 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化
- 可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性: pij=aij/N, aij表示样本i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的颗数
- 训练速度快,可以得到变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的GINI下降量
- 在训练过程中,能够检测到feature间的互相影响
- 对于不平衡的分类资料集来说,它可以平衡误差