📜  R 编程中回归的随机森林方法

📅  最后修改于: 2022-05-13 01:55:02.364000             🧑  作者: Mango

R 编程中回归的随机森林方法

随机森林方法是一种监督学习算法。它构建了多个被称为森林的决策树,并将它们粘合在一起,以促进更准确和稳定的预测。随机森林方法类似于称为 Bagging 的集成技术。在这种方法中,通过从训练数据中引导样本生成多棵树,然后我们简单地减少树之间的相关性。执行此方法可提高决策树的性能并有助于避免覆盖。在本文中,让我们学习在 R 编程中使用随机森林方法进行回归。

随机森林的特点

  • 聚合许多决策树:随机森林是决策树的集合,因此不依赖于单个特征,而是结合了每个决策树的多个预测。
  • 防止过拟合:对于多棵决策树,每棵树都会抽取一个样本随机数据,从而使随机森林具有更多的随机性,从而产生比决策树更好的准确性。

随机森林的优势

  • 高效:在大型数据库上执行时,随机森林比决策树高效得多。
  • 高度准确:随机森林是高度准确的,因为它们是决策树的集合,每个决策树都抽取样本随机数据,因此,随机森林可以产生更高的预测准确度。
  • 测试误差的有效估计:它有效利用所有预测特征,即使数据丢失也能保持准确性。

随机森林的缺点

  • 需要不同数量的级别:作为决策树的集合,随机森林需要不同数量的级别才能对训练模型进行更准确和有偏差的预测。
  • 需要大量内存:训练大量树可能需要更高的内存或并行化内存。

R中回归的随机森林方法的实现

R 编程中的包randomForest用于创建随机森林。它构建的森林是决策树的集合。函数randomForest()用于创建和分析随机森林。

例子:

  • 第 1 步:安装所需的软件包。
    # Install the required package for function
    install.packages("randomForest")
    
  • 第 2 步:加载所需的包。
    # Load the library
    library(randomForest)
    
  • 第 3 步:在此示例中,让我们使用 R 中存在的空气质量数据集。打印数据集。
    # Print the dataset
    print(head(airquality))
    

    输出

    Ozone Solar.R Wind Temp Month Day
    1    41     190  7.4   67     5   1
    2    36     118  8.0   72     5   2
    3    12     149 12.6   74     5   3
    4    18     313 11.5   62     5   4
    5    NA      NA 14.3   56     5   5
    6    28      NA 14.9   66     5   6
    
  • 第 4 步:为回归创建随机森林
    # Create random forest for regression
    ozone.rf <- randomForest(Ozone ~ ., data = airquality, mtry = 3,
                             importance = TRUE, na.action = na.omit)
    
  • 第 5 步:打印回归模型
    # Print regression model
    print(ozone.rf)
    

    输出

    Call:
     randomForest(formula = Ozone ~ ., data = airquality, mtry = 3,      importance = TRUE, na.action = na.omit) 
                   Type of random forest: regression
                         Number of trees: 500
    No. of variables tried at each split: 3
    
              Mean of squared residuals: 296.4822
                        % Var explained: 72.98
    
  • 第 6 步:绘制误差与树数之间的关系图
    # Output to be present as PNG file 
    png(file = "randomForestRegression.png")
      
    # Plot the error vs the number of trees graph
    plot(ozone.rf)
      
    # Saving the file
    dev.off()
    

    输出:

    图形输出