R-随机森林14 Nov 2024 | 4 分钟阅读 随机森林也被称为决策树森林。它是一种流行的基于决策树的集成模型。 这些模型的准确性高于其他决策树。 此算法用于分类和回归应用。 在随机森林中,我们创建大量的决策树,并且在每个决策树中,都会输入每个观察结果。 最终输出是每个观察结果的最常见结果。 通过将新的观察结果输入到所有树中,我们对每个分类模型进行多数投票。 对构建树时未使用的案例进行误差估计。 这称为袋外(OOB)误差估计,以百分比表示。 决策树容易过度拟合,这是它的主要缺点。 原因是树如果加深,能够拟合数据中的所有类型的变化,包括噪声。 可以通过部分剪枝来解决这个问题,但结果往往不太令人满意。 R 允许我们通过提供 randomForest 包来创建随机森林。 randomForest 包提供 randomForest() 函数,它帮助我们创建和分析随机森林。 R 中随机森林的语法如下 示例让我们开始了解 randomForest 包及其函数的使用方法。 为此,我们举一个例子,在其中使用了 heart-disease 数据集。 让我们逐步开始我们的编码部分。 1) 在第一步中,我们必须加载三个必需的库,即 ggplot2、cowplot 和 randomForest。 2) 现在,我们将使用 http://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data 中存在的 heart-disease 数据集。 然后,从此数据集中,我们以 CSV 格式读取数据并将其存储在变量中。 3) 现在,我们借助 head() 函数打印数据,该函数仅打印前六行,如下所示 当我们运行上面的代码时,它会生成以下输出。 输出 ![]() 4) 从上面的输出可以清楚地看到,没有一列被标记。 现在,我们命名这些列并以下列方式标记这些列 输出 ![]() 5) 让我们借助 str() 函数检查数据的结构,以便更好地分析它。 输出 ![]() 6) 在上面的输出中,我们突出显示了将在分析中使用的那些列。 从输出中可以清楚地看到,某些列混乱了。 Sex 应该是一个因子,其中 0 代表“女性”,1 代表“男性”。 并且 cp(胸痛) 也应该是一个因子,其中 1 到 3 级代表不同类型的疼痛,4 代表没有胸痛。 ca 和 thal 是因子,但其中一个级别是“?”,我们需要它为 NA。 我们必须清理数据集中的数据,如下所示 输出 ![]() 7) 现在,我们通过设置随机数生成器的种子来随机抽样,以便我们可以重现我们的结果。 8) NWxt,我们使用 rfImput() 函数估算数据集中的 NA 值。 如下所示 输出 ![]() 9) 现在,我们借助 randomForest() 函数以如下方式构建适当的随机森林 输出 ![]() 10) 现在,如果 500 棵树对于最佳分类来说足够,我们将绘制错误率。 我们创建一个数据框,它将以下列方式格式化错误率信息 11) 我们调用 ggplot 以如下方式绘制错误率 输出 ![]() 从上面的输出可以清楚地看到,当我们的随机森林拥有更多树时,错误率会降低。 12) 现在,我们添加 1000 棵树并检查错误率是否会进一步降低? 因此,我们创建一个包含 1000 棵树的随机森林并找到错误率,就像我们之前所做的那样。 输出 ![]() 输出 ![]() 从上面的输出可以清楚地看到,错误率已稳定。 13) 现在,我们需要确保我们正在考虑树中每个内部节点处的最优变量数量。 这将通过以下方式完成 输出 ![]() 14) 现在,我们使用随机森林绘制带有样本的 MDS 图。 这将向我们展示它们彼此之间的关系。 这将通过以下方式完成 输出 ![]() 下一个主题R 中的 T 检验 |
我们请求您订阅我们的新闻通讯以获取最新更新。