Enfoque de bosque aleatorio en la programación R

Random Forest en R Programming es un conjunto de árboles de decisión. Construye y combina múltiples árboles de decisión para obtener predicciones más precisas. Es un algoritmo de clasificación no lineal. Cada modelo de árbol de decisión se utiliza cuando se emplea por sí solo. Se realiza una estimación de errores de casos que no se utiliza al construir el árbol. Esto se denomina estimación de error fuera de bolsa y se menciona como un porcentaje.

Se llaman aleatorios porque eligen predictores al azar en un momento de entrenamiento. Se llaman bosque porque toman la salida de múltiples árboles para tomar una decisión. El bosque aleatorio supera a los árboles de decisión, ya que una gran cantidad de árboles (modelos) no correlacionados que funcionan como un comité siempre superará a los modelos constituyentes individuales.

Teoría

Random forest toma muestras aleatorias de las observaciones, variables iniciales aleatorias (columnas) e intenta construir un modelo. El algoritmo de bosque aleatorio es el siguiente:

  • Dibuje una muestra aleatoria de arranque de tamaño n (elija aleatoriamente n muestras de los datos de entrenamiento).
  • Haga crecer un árbol de decisión a partir de una muestra de arranque. En cada Node del árbol, seleccione al azar d características.
  • Divida el Node usando características (variables) que proporcionen la mejor división según la función objetivo. Por ejemplo, maximizando la ganancia de información.
  • Repita los pasos 1 a 2, k veces (k es la cantidad de árboles que desea crear usando un subconjunto de muestras).
  • Agregue la predicción por cada árbol para un nuevo punto de datos para asignar la etiqueta de clase por mayoría de votos, es decir, elija el grupo seleccionado por la mayor cantidad de árboles y asigne un nuevo punto de datos a ese grupo.

Ejemplo:
considere una caja de frutas que consta de tres frutas: manzanas, naranjas y cerezas en datos de entrenamiento, es decir, n = 3. Estamos prediciendo la fruta que tiene el máximo número en una caja de frutas. Un modelo de bosque aleatorio usando los datos de entrenamiento con un número de árboles, k = 3.

El modelo se juzga utilizando varias características de los datos, es decir, diámetro, color, forma y grupos. Entre naranja, alegre y naranja, el naranja se selecciona para ser el máximo en la caja de frutas por bosque aleatorio.

El conjunto de datos

IrisEl conjunto de datos consta de 50 muestras de cada una de las 3 especies de Iris (Iris setosa, Iris virginica, Iris versicolor) y un conjunto de datos multivariante introducido por el estadístico y biólogo británico Ronald Fisher en su artículo de 1936 El uso de múltiples medidas en problemas taxonómicos . Se midieron cuatro características de cada muestra, es decir, la longitud y el ancho de los sépalos y pétalos y, basándose en la combinación de estas cuatro características, Fisher desarrolló un modelo discriminante lineal para distinguir las especies entre sí.

# Loading data
data(iris)
  
# Structure 
str(iris)

Realización de Random Forest en un conjunto de datos

Usando el algoritmo de bosque aleatorio en el conjunto de datos que incluye 11 personas y 6 variables o atributos.

# Installing package
install.packages("caTools")       # For sampling the dataset
install.packages("randomForest")  # For implementing random forest algorithm
  
# Loading package
library(caTools)
library(randomForest)
  
# Splitting data in train and test data
split <- sample.split(iris, SplitRatio = 0.7)
split
  
train <- subset(iris, split == "TRUE")
test <- subset(iris, split == "FALSE")
  
# Fitting Random Forest to the train dataset
set.seed(120)  # Setting seed
classifier_RF = randomForest(x = train[-5],
                             y = train$Species,
                             ntree = 500)
  
classifier_RF
  
# Predicting the Test set results
y_pred = predict(classifier_RF, newdata = test[-5])
  
# Confusion Matrix
confusion_mtx = table(test[, 5], y_pred)
confusion_mtx
  
# Plotting model
plot(classifier_RF)
  
# Importance plot
importance(classifier_RF)
  
# Variable importance plot
varImpPlot(classifier_RF)

Producción:

  • Clasificador de modelo_RF:

    El número de árboles es 500 en el modelo y no. de variables probadas en cada división son 2. El error de clasificación en setosa es 0,000, es decir, 0%, Versicolor es 0,033, es decir, 3,3% y virginica es 0,066, es decir, 6,6%.

  • Array de confusión:

    Entonces, 20 Setosa se clasifican correctamente como Setosa. De 23 versicolor, 20 Versicolor se clasifican correctamente como Versicolor y 3 se clasifican como virginica. 17 virginica se clasifican correctamente como virginica.

  • Parcela de modelo:

    La tasa de error se estabiliza con un aumento en el número de árboles.

  • Características importantes:

    Petal.Width es la característica más importante seguida de Petal.Length, Sepal.Width y Sepal.Length.

  • Parcela de características importantes:

    El gráfico muestra claramente Petal.Width como la característica o variable más importante seguida de Petal.Length, Sepal.Width y Sepal.Length.

Entonces, el bosque aleatorio es un poderoso algoritmo utilizado para la clasificación en la industria.

Publicación traducida automáticamente

Artículo escrito por dhruv5819 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *