Случайный лесной пробег - PullRequest
0 голосов
/ 31 мая 2018

Я изо всех сил пытаюсь понять разницу между вводами кодов RF в пакете randomForest.В этой ссылке предлагается использовать

  ## S3 method for class 'formula'
randomForest(formula, data=NULL, ..., subset, na.action=na.fail)
## Default S3 method:
randomForest(**x**,  **y** =NULL, xtest=NULL, ytest=NULL, ntree=500,

,,,,,,

Как я понимаю, x - это фрейм данных с предикторами, а y - переменная ответа.Однако я вижу, что в примере создания этого кода из той же статьи сначала используется переменная ответа, а затем данные:

 iris.rf <- randomForest(Species ~ ., data=iris, importance=TRUE,
proximity=TRUE)

Итак, я написал свой код с обоими вариантами, но я не уверен, какойодин правильный для классификации и почему?

Here is my code: 

I am basically comparing the two codes for rf.




## create data frame 
 n   <- 199
  z   <- seq(-10, 10, length=n)
x<-sin(x)/x       
  y <-  rnorm(n, 0, 0.1)
  xy <- data.frame(x,y)


## create classes
 xy$Y<-sample(1:2,  n, replace = T)
   XY<-xy
   n <- nrow(XY)
   p <- ncol(XY)-1
   colnames(XY)[p+1]<-'Y'




## create trining and test sets
s     <- sample(sample(n)) 
    ntr   <- round(ptr*n) 
    id.tr <- s[1:ntr]
    id.te <- s[(ntr+1):n]
    XY.tr <- XY[id.tr, ]
    XY.te <- XY[id.te, ]
    y.te  <- XY[id.te, p+1]

    XY.tr$Y<-as.factor(XY.tr$Y)

##run Random forest
rf1 <- randomForest(XY.tr, data=XY.tr$Y, proximity=TRUE,importance=T) 
rf2<-randomForest(formula = XY.tr$Y ~ .,  data=XY.tr, proximity = TRUE, importance = T) 

Большое спасибо за понимание

1 Ответ

0 голосов
/ 31 мая 2018

Оба ответят вам одинаково:

data(iris)                                                    #load data

При первом подходе вы явно предоставите вектор ответа y (но исправьте свой код соответствующим образом):

set.seed(131)
rf1 <- randomForest(y= iris$Species, x=iris[1:4], proximity=TRUE, importance=T)  

Во втором подходе вы неявно информируете о векторе ответов y - формула и предоставляете всю матрицу данных.

set.seed(131)
rf2<-randomForest(formula = Species ~ ., data=iris, importance=TRUE, proximity=TRUE)

См. Эту документацию R для randomForest :

Аргумент: x, формула:
кадр данных или матрица предикторов, илиформула, описывающая модель
, которую нужно подогнать (для метода печати - объект randomForest).

...