随机森林简介
- 随机森林是有监督的学习方法。在模型中,同时生成多个预测模型,并将模型的结果汇总以提升准确率。
- 随机森林涉及对样本和变量进行抽样,从而生成大量的决策树
- 对于样本(观察对象来说),所有决策树依次对其进行预测。所有决策树的众数(预测结果是分类变量)或平均数(预测结果是连续型变量)作为这一样本的最终预测结果
- 生成决策树时未用到的样本类型也可由决策树估计,其预测结果是由所有决策树估计的众数或平均值决定。与真实结果比较可以得到袋外预测误差(OOB)。当没有验证数据时,这是随机森林的一个优势。
随机森林算法
假设数据集共有N个样本,M个变量,其算法如下:
- 从数据集中随机有/无放回的抽取N个样本,生成大量决策树
- 每一个节点随机抽取m(小于M)个变量,将其作为分割该节点的候选变量。每个节点处的变量树应该一致。
- 完整的生成所有决策树
- 终端节点所属类别由节点对应的众数决定
- 对于新的观测点有所有树对其进行分类,其类别由多数决定原则生成。
随机森林的优势
- 可以处理大量的输入变量
- 可以评估变量的重要性
- 建造模型时使用无偏估计,模型泛化能力强
- 当数据缺失较多时,仍可以维持一定的精确度
- 可以处理混合数据(数值型和因子型)
R代码
原发性胆汁性肝硬化数据
字段 | 含义 |
days | 随访时间 |
status | 0表示删失,1表示死亡 |
treatment | 1表示D-青霉胺,2表示安慰剂 |
age | 年龄(天数) |
sex | 0男,1女 |
ascites | 腹腔积水,0表示否,1表示是 |
hepatom | 肝肿大,0表示否,1表示是 |
spiders | 蜘蛛痣,0表示否,1表示是 |
edema | 水肿,0表示否,1表示是 |
参考