Bosque aleatorio en R

Sheeraz Gul 15 febrero 2024
Bosque aleatorio en R

Se crea una gran cantidad de árboles de decisión en el enfoque Random Forest. Este tutorial demuestra cómo aplicar el enfoque de bosque aleatorio en R.

Bosque aleatorio en R

Se crea una gran cantidad de árboles de decisión en el enfoque Random Forest. Muchas observaciones se introducen en los árboles de decisión, y el resultado más común de ellos se utiliza como resultado final.

Luego, se envía una nueva observación a todos los árboles de decisión para obtener un voto mayoritario para cada modelo de clasificación. Se realiza una estimación del error OOB (out-of-bag) para las cajas que no se utilizaron durante la construcción del árbol.

Usemos el conjunto de datos iris y apliquemos el enfoque de bosque aleatorio. Necesitamos instalar caTools y randomForest para implementar el bosque aleatorio en R.

install.packages("caTools")
install.packages("randomForest")

Una vez que los paquetes están instalados, podemos cargarlos e iniciar el enfoque de bosque aleatorio. Ver ejemplo:

# Loading package
library(caTools)
library(randomForest)

# Split the data in train data and test data with ratio 0.8
split_data <- sample.split(iris, SplitRatio = 0.8)
split_data

train_data <- subset(iris, split == "TRUE")
test_data <- subset(iris, split == "FALSE")

# Fit the random Forest to the train dataset
set.seed(120) # Setting seed
classifier_Random_Forest = randomForest(x = train_data[-4],
                             y = train_data$Species,
                             ntree = 400)

classifier_Random_Forest

El código anterior divide los datos del iris con una proporción de 0,8 y luego crea los datos del tren y de la prueba; finalmente, aplica el enfoque de bosque aleatorio con 400 árboles. La salida es:

Call:
 randomForest(x = train_data[-4], y = train_data$Species, ntree = 400)
               Type of random forest: classification
                     Number of trees: 400
No. of variables tried at each split: 2

        OOB estimate of  error rate: 0%
Confusion matrix:
           setosa versicolor virginica class.error
setosa         30          0         0           0
versicolor      0         30         0           0
virginica       0          0        30           0

Una vez que se ajusta el modelo de bosque aleatorio, podemos predecir el resultado del conjunto de pruebas, ver la matriz de confusión y trazar los gráficos del modelo. Vea el código a continuación.

# Predict the Test set result
y_pred = predict(classifier_RF, newdata = test_data[-4])

# The Confusion Matrix
conf_matrix = table(test_data[, 4], y_pred)
conf_matrix

# Plot the random forest model
plot(classifier_Random_Forest)

# The importance plot
importance(classifier_Random_Forest)

# The Variable importance plot
varImpPlot(classifier_Random_Forest)

El código anterior predice el resultado del conjunto de prueba y luego muestra la matriz de confusión. Finalmente, se muestra el gráfico del modelo de bosque aleatorio, el gráfico de importancia y el gráfico de importancia variable.

Ver salida:

> conf_matrix
     y_pred
      setosa versicolor virginica
  0.1      1          0         0
  0.2     10          0         0
  0.3      3          0         0
  0.4      4          0         0
  0.5      1          0         0
  0.6      1          0         0
  1        0          2         0
  1.1      0          1         0
  1.2      0          1         0
  1.3      0          5         0
  1.4      0          3         0
  1.5      0          6         1
  1.6      0          1         1
  1.7      0          1         0
  1.8      0          2         4
  1.9      0          0         3
  2        0          0         3
  2.1      0          0         1
  2.3      0          0         4
  2.4      0          0         1

La gráfica del modelo Random Forest:

diagrama de bosque aleatorio1

La Importancia del modelo de bosque aleatorio:

             MeanDecreaseGini
Sepal.Length        6.1736467
Sepal.Width         0.9664428
Petal.Length       24.1454822
Species            28.0489838

El gráfico de Importancia de la variable:

diagrama de bosque aleatorio2

Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook