- 随机森林(原理/样例实现/参数调优)
- R包randomForest的随机森林分类模型以及对重要变量的选择
- 简单易懂的随机森林算法原理分析
- sklearn随机森林分类类RandomForestClassifier参数详解
个人理解
- 有监督学习方法(需要特征)
- 给决策树一个特征,决策树就会给出一个判断结果,每个决策树就像是一张选票,N个决策树聚成一片森林(随机森林),最后这片森林选出票数最高的分类结果作为这个森林的决策。重复抽样1000次,提高精确度。(如果是连续变量,就算输出结果的平均平均)
- 是一种集成学习(一定数量弱的机器学习可以顶一个强的机器学习),每一个决策树是一个弱的机器学习,但当他们组成随机森林了,就是一个强的机器学习。
- 优点:
- 高维数据特别适合用此方法
- 分类效果要比回归好
- 缺点:
- 在预测回归问题时,不能预测训练数据以外的对象。
- 适用于:
- 银行预测客户忠诚度的高低
- 医药行业寻找正确的分组来寻找新药
- 电子病例分析,用于诊断
- 预测股市走向
- 预测客户对产品的好评
- 一般步骤,
- 构建训练集和测试集,一般七三开
- 用训练集构建模型
- 模型评估(训练集,测试集都可评估)
- 寻找用于分类的重要变量
- 交叉验证法选择合适的变量数目
- 尝试一下能不能把选出来的变量再做一次1-3,看看模型有没有优化
- 可以画一些排序图
a. 假如每个训练集大小为 N,对于每棵树而言,随机且有放回地从训练集中抽取 N 个样本(每次随机选择一
个样本,然后返回继续选择),作为该树的训练集。选定的 N 个样本用来训练一个决策树,作为决策树根节点处 的样本。
b. 若每个样本有 M 个属性,随机从 M 个属性中选取出 m 个子属性(m << M),在决策树的每个节点需要 分裂时,从这 m 个子属性中采用某种度量策略(比如说信息增益)来选择 1 个最优属性作为该节点的分裂属性。
d. 决策树形成过程中每个节点都要按照步骤 b 来分裂(若下一次该节点选出来的某一属性是刚刚其父节点分裂时用过的属性,则该节点已达到叶子的节点,无须继续分裂),一直到不能再分裂为止。注意整个决策树形
成过程中没有进行剪枝。
- 最后,按照步骤 a ~ c 建立大量的决策树,这样就构成了随机森林。通过对所有决策树进行加总来对新的数 据进行判别与分类(在分类时采用信息增益或基尼指数,在回归时采用方差或最小二乘拟合)。
- 10-fold 交叉验证用来测试模型的准确性,是将样本随机分成 10 份,取其中 9 份作为训练样本来训练模型, 1 份作为测试样本,进行模型验证,通过与实际结果比较,可用来评价模型的好坏。这里,对随机森林分类模型 使用 10-fold 交叉验证,获得最小分类错误率下的物种个数,用来初步筛选重要物种(变量)。(默认方法使用 10-fold 交叉验证方法)。
-
受试者工作特征曲线 (receiver operating characteristic curve,简称 ROC 曲线)是以真阳性率(敏感性)为 纵坐标,假阳性率(1-特异性)为横坐标绘制的曲线,AUC 值是 ROC 曲线下面的面积,常用其来评判一个二值 分类器的优劣。这里根据不同变量数下(按物种重要性排序的)AUC 值大小来初步筛选重要物种(变量)。当 使用 AUC 方法筛选物种时必须为两组。
image.png
image.png
image.png
image.png
网友评论