Files
ArtStudies/M2/Machine Learning 2/Random_forest.Rmd

79 lines
1.2 KiB
Plaintext

```{r}
library(randomForest)
library(MASS)
library(tree)
data(Boston)
```
## Sampling
```{r}
set.seed(123)
appr = sample(1:nrow(Boston), nrow(Boston) / 2)
```
## Regression Tree
```{r}
arbre.boston = tree(medv ~ ., Boston, subset = appr)
summary(arbre.boston)
plot(arbre.boston)
text(arbre.boston, pretty = 0)
```
```{r}
cv.boston = cv.tree(arbre.boston)
plot(cv.boston$size, cv.boston$dev, type = 'b')
```
```{r}
yprev = predict(arbre.boston, newdata = Boston[-appr, ])
boston.test = Boston[-appr, "medv"]
plot(yprev, boston.test)
abline(0, 1)
mean((yprev - boston.test)^2)
```
## Bagging
```{r}
set.seed(123)
bag.boston = randomForest(
medv ~ .,
data = Boston,
subset = appr,
mtry = 13,
importance = TRUE
)
bag.boston
yprev.bag = predict(bag.boston, newdata = Boston[-appr, ])
plot(yprev.bag, boston.test)
abline(0, 1)
mean((yprev.bag - boston.test)^2)
```
## Random Forest
```{r}
set.seed(123)
rf.boston = randomForest(
medv ~ .,
data = Boston,
subset = appr,
mtry = 6,
importance = TRUE
)
yprev.rf = predict(rf.boston, newdata = Boston[-appr, ])
mean((yprev.rf - boston.test)^2)
```
## Variable importance
```{r}
importance(rf.boston)
varImpPlot(rf.boston)
```