R语言 随机森林方法
R编程中的随机森林是一个决策树的集合体。它建立并结合多个决策树以获得更准确的预测。它是一种非线性的分类算法。每个决策树模型都是单独使用的。对构建树时未使用的案例进行错误估计。这被称为袋外误差估计,以百分比形式提及。
它们被称为 随机的 ,因为它们在训练时随机地选择预测者。它们被称为 森林 ,因为它们采用多棵树的输出来做决定。随机森林优于决策树,因为大量不相关的树(模型)作为一个委员会运作,总是优于单个的组成模型。
理论
随机森林从观测值中提取随机样本,随机初始变量(列)并试图建立一个模型。随机森林的算法如下。
- 抽取一个大小为 n 的随机引导样本(从训练数据中随机选择 n个 样本)。
- 从引导样本中生长出一棵决策树。在树的每个节点,随机选择 d个 特征。
- 根据目标函数,使用提供最佳分割的特征(变量)来分割节点。例如,通过最大化信息增益。
- 重复第1步到步骤2, k 次(k是你想用样本子集创建的树的数量)。
- 汇总每棵树对一个新数据点的预测,通过多数投票来分配类别标签,即挑选由最多树选择的组,并将新数据点分配给该组。
例子:
考虑一个由苹果、橙子和樱桃三种水果组成的水果箱的训练数据,即n=3。我们要预测的是水果箱中数量最多的水果。一个使用训练数据的随机森林模型,树的数量为k=3。
该模型使用数据的各种特征进行判断,即直径、颜色、形状和群体。在橙子、欢快和橘子中,橙子被随机森林选为水果箱中的最大数量。
数据集
鸢尾花 数据集由3种鸢尾花(Iris setosa, Iris virginica, Iris versicolor)各50个样本组成,是英国统计学家和生物学家Ronald Fisher在其1936年的论文 《在分类学问题中使用多种测量方法 》中介绍的多变量数据集 。 从每个样本中测量了四个特征,即萼片和花瓣的长度和宽度,根据这四个特征的组合,费雪建立了一个线性判别模型来区分物种。
在数据集上执行随机森林
在包括11个人和6个变量或属性的数据集上使用随机森林算法。
输出
- 模型分类_RF:
模型中树的数量为500棵,在每个分割中尝试的变量数量为2。Setosa的分类误差为0.000即0%,Versicolor为0.033即3.3%,Virginica为0.066即6.6%。
- 混淆矩阵:
因此,有20个Setosa被正确地归类为Setosa。在23个Versicolor中,20个Versicolor被正确分类为Versicolor,3个被分类为virginica。17个Virginica被正确地分类为Virginica。
- 模型的图示:
错误率随着树木数量的增加而稳定下来。
- 重要特征:
花瓣.宽度 是最重要的特征,其次是花瓣.长度、萼片.宽度和萼片.长度。
- 重要特征图:
该图清楚地显示花瓣.宽度是最重要的特征或变量,其次是花瓣.长度、萼片.宽度和萼片.长度。
因此,随机森林是一种用于行业分类的强大算法。