全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
15724 25
2012-05-02
悬赏 10 个论坛币 未解决
在R语言的randomForest程序包中,randomForest函数中的第一个参数是formula,文章中的解释是a formula describing the model to be fitted.
有两个例子,一个这么写的:iris.rf<-randomForest(Species~.,iris)
另一个是ozone.rf<-randomForest(Ozone~.,data=airquality)
就是说这两个例子的formula一个是Species~.,另一个是Ozone~.,
这两个例子中的Species~.,和Ozone~.,分别是什么含义?
对于我自己要跑的数据,这个formula应该怎么定义?

谢谢各位大虾了~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-5-2 21:37:37
iris data:
  three species : setosa,  virginica and  versicolor (3分类)
  Four features : the length and the width of the sepals and petals(4特性)
####
library(randomForest)
data(iris)
iris
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
.....
.....
148          6.5         3.0          5.2         2.0  virginica
149          6.2         3.4          5.4         2.3  virginica
150          5.9         3.0          5.1         1.8  virginica


set.seed(71)
randomForest(Species ~ ., data=iris, importance=TRUE)
等同
set.seed(71)
randomForest(Species ~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width , data=iris, importance=TRUE)

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

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

再有问题,把数据传上来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-2 21:50:28
好的,谢谢了,这个明白了。
那set.seed(71),这句话是什么意思?括号中的数字是什么含义?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-2 22:15:22
benbobo 发表于 2012-5-2 21:50
好的,谢谢了,这个明白了。
那set.seed(71),这句话是什么意思?括号中的数字是什么含义?
set.seed()
主要是让每次结果相同
否则你我的电脑执行出来的结果不同
你可能会产生质疑

>?set.seed
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-5-17 16:55:02
Species~.,和Ozone~.,都是表示应变量,也就是response variable。
set.seed表示设置种子数,设置不同的种子数时会随机得到不同的抽样结果。为了使运行的结果可重复,比如:别人运行你的程序的时候,也能得到跟你一模一样的结果,这时就需要设置种子数,相当于固定了抽到的样本,就能计算得到固定的结果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-7-3 20:40:09
请问,有没有办法把分类错误的项提出来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群