发布于 2016-01-02 09:29:08 | 1117 次阅读 | 评论: 0 | 来源: 网络整理
在随机森林做法是由大量的决策树来创建的。每个观察被送入每一个决定树。对于每个观测的最常见的结果被用作最终的输出。一个新的观察被送入所有树,并采取多数表决每个分类模型。
错误估算出其在构建树不使用的情况下。这就是所谓的 OOB 所提到以百分比(外袋)错误估计。R软件包 “randomForest” 用于创建随机森林。
R中控制台使用下面的命令来安装该软件包。还必须安装相关程序包(如有)。
install.packages("randomForest)
包 “randomForest” 中有 randomForest()函数,它用于创建并分析随机森林。
在 R 中创建一个随机森林的基本语法是:
randomForest(formula, data)
以下是所使用的参数的说明:
我们将使用 R 内置的数据集名为 readingSkills 来创建一个决策树。它描述了一个人的 readingSkills 的得分,如果我们知道变量:
"age","shoesize","score" 和是否为母语的人。
下面是示例数据。
# Load the party package. It will automatically load other required packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
当我们上面的代码执行,它会产生以下结果及图表:
nativeSpeaker age shoeSize score
1 yes 5 24.83189 32.29385
2 yes 6 25.95238 36.63105
3 no 11 30.42170 49.60593
4 yes 7 28.66450 40.28456
5 yes 11 31.88207 55.46085
6 yes 10 30.07843 52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................
我们将使用 randomForest()函数来创建决策树,看看它的图形。
# Load the party package. It will automatically load other required packages.
library(party)
library(randomForest)
# Create the forest.
output.forest <- randomForest(nativeSpeaker ~ age + shoeSize + score, data=readingSkills)
# View the forest results.
print(output.forest)
# Importance of each predictor.
print(importance(fit,type=2))
当我们上面的代码执行时,它产生以下结果:
Call:
randomForest(formula = nativeSpeaker ~ age + shoeSize + score, data = readingSkills)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 1
OOB estimate of error rate: 1%
Confusion matrix:
no yes class.error
no 99 1 0.01
yes 1 99 0.01
MeanDecreaseGini
age 13.95406
shoeSize 18.91006
score 56.73051
从以上所示的随机森林,我们可以得出这样的结论:如果有人是或不是母语, shoesize 和 score 是确定的重要因素。另外,模型只有1%的误差,这意味着我们能有 99% 的准确度预测。