📜  R 编程中用于分类的随机森林方法

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

R 编程中用于分类的随机森林方法

随机森林方法是有监督的非线性分类和回归算法。分类是将一组数据集分类为类别或类的过程。由于随机森林方法可以根据用户和目标或所需的类别使用分类或回归技术。随机森林是决策树的集合,它以更高的概率指定类别。随机森林方法用于决策树方法,因为决策树缺乏准确性,并且由于称为过度拟合的过程,决策树在测试阶段也显示出较低的准确性。在 R 编程中, randomForest包的randomForest()函数用于创建和分析随机森林。在本文中,让我们讨论随机森林,学习 R 编程中用于分类的随机森林方法的语法和实现,并将绘制进一步的图以进行推理。

随机森林

随机森林是一种机器学习算法,它使用决策树的集合,在输出中提供更高的灵活性、准确性和易于访问性。该算法优于决策树算法,因为与随机森林算法相比,决策树的准确性较差。简单来说,随机森林方法提高了决策树的性能。它是最好的算法之一,因为它可以同时使用分类和回归技术。作为一种监督学习算法,随机森林在决策树中使用了 bagging 方法,从而提高了学习模型的准确性。

随机森林从随机特征子集中搜索最佳特征,为模型提供更多随机性,并产生更好、更准确的模型。让我们通过一个例子来了解随机森林方法。假设一个名叫 Bob 的人想从商店购买一件 T 恤。推销员首先问他最喜欢的颜色。这构成了基于颜色特征的决策树。此外,推销员会询问更多关于 T 恤的信息,例如尺寸、面料类型、领子类型等等。更多的选择 T 恤的标准将在机器学习中产生更多的决策树。所有决策树一起构成随机森林方法,根据 Bob 想从商店购买的许多特征来选择 T 恤。

分类

分类是一种监督学习方法,其中根据提供的特征对数据进行分类。如上例所示,数据正在使用随机森林以不同的参数进行分类。它有助于创建更多和有意义的观察或分类。简单来说,分类就是将结构化或非结构化数据分类为某些类别或类别的一种方式。有8种主要的分类算法:

  • 逻辑回归
  • 朴素贝叶斯
  • K-最近邻
  • 决策树
  • 随机森林
  • 人工神经网络
  • 支持向量机
  • 随机梯度下降

一些现实世界的分类示例是邮件可以指定为垃圾邮件或非垃圾邮件,废物可以指定为废纸、塑料废物、有机废物或电子废物,可以根据许多症状确定疾病,情绪分析,使用确定性别面部表情等

实施随机森林方法进行分类

例子:
在这个例子中,让我们在 iris 数据集上使用监督学习,根据函数中传递的参数对鸢尾植物的种类进行分类。
第 1 步:安装所需的库

# Install the required
# Package for function
install.packages("randomForest")

第 2 步:加载所需的库

# Load the library
library(randomForest)

第 3 步:randomForest()函数中使用 iris 数据集

# Create random forest
# For classification
iris.rf <- randomForest(Species ~ ., 
                        data = iris, 
                        importance = TRUE,
                        proximity = TRUE)

第四步:打印上一步建立的分类模型

# Print classification model
print(iris.rf)

输出:

Call:
 randomForest(formula = Species ~ ., data = iris, importance = TRUE,      proximity = TRUE) 
               Type of random forest: classification
                     Number of trees: 500
No. of variables tried at each split: 2

        OOB estimate of  error rate: 5.33%
Confusion matrix:
           setosa versicolor virginica class.error
setosa         50          0         0        0.00
versicolor      0         47         3        0.06
virginica       0          5        45        0.10

第 5 步:绘制误差和树数之间的图

# Output to be present
# As PNG file 
png(file = "randomForestClassification.png")
   
# Plot the error vs 
# The number of trees graph
plot(iris.rf)
   
# Saving the file
dev.off()

输出:

解释:
执行上述代码后,生成的输出显示了使用随机森林算法的分类模型开发的决策树的数量,即 500 棵决策树。混淆矩阵也称为误差矩阵,显示了分类模型性能的可视化。