Unidad 3(Random Forest): Determinación de Sistemas de Aprendizaje automático

Random Forest

Code
library(kknn)

# library(rpart)
# library(rpart.plot)
# library(bayesQR)
library(broom)
library(corrplot)
# library(yardstick)
library(pROC)
# library(ggrepel)
# library(purrr)
library(plotly)
library(randomForest)
library(skimr)
library(MASS)
library(tidyverse)
library(e1071)

Algoritmos de Machine Learning

  • Regresión Lineal

  • Regresión Logística

  • Árboles de Decisión

  • Random Forest

  • k Nearest Neighbor (KNN)

  • SVM

  • Naive Bayes

  • Clustering jerárquico

  • K-Means

  • PCA

  • Redes Neuronales

  • Aprendizaje profundo

Algoritmo SVM para Clasificación y Regresión

Rodrigo (2020)

Las Máquinas de Soporte Vectorial (SVM) son una técnica de aprendizaje supervisado utilizada tanto para clasificación (SVC) como para regresión (SVR). En su forma más básica, el objetivo de SVM es encontrar un hiperplano en un espacio N-dimensional (N — el número de características) que clasifique claramente los puntos de datos.

SVM para Clasificación

En clasificación, SVM busca el hiperplano que separa mejor las clases con el margen más amplio. Este hiperplano se define de tal manera que la distancia entre el hiperplano y el punto de datos más cercano de cada clase (vectores de soporte) es maximizada. Matemáticamente, si tenemos un conjunto de entrenamiento de puntos de datos \(x_i\) con etiquetas \(y_i\) donde \(y_i \in \{1, -1\}\), el hiperplano se define como los puntos \(x\) que satisfacen la ecuación \(w \cdot x - b = 0\). Aquí, \(w\) es el vector normal al hiperplano, y \(b\) es el sesgo.

SVM para Regresión

En regresión (SVR), el objetivo es encontrar un hiperplano que se ajuste lo mejor posible a los datos dentro de un margen ε, pero al mismo tiempo sea lo más plano posible. Esto se logra a través de un enfoque similar al de la clasificación, pero en este caso, el hiperplano se diseña para encajar dentro de un tubo ε que captura la mayoría de los puntos.

Preprocesamiento de Datos

Es importante escalar las variables predictoras antes de aplicar SVM, ya que el algoritmo es sensible a las escalas de las características. Esto asegura que todas las características contribuyan equitativamente al modelo.

Ejemplo en R

Clasificación con SVM

Code
load("data/corruption.RData")
glimpse(corruption)
Rows: 52
Columns: 5
$ country          <fct> Argentina, Australia, Austria, Belgium, Brazil, Canad…
$ cpi              <dbl> 2.9, 8.7, 7.9, 7.1, 3.7, 8.9, 7.2, 3.5, 3.5, 6.3, 4.6…
$ age              <dbl> 72, 64, 72, 67, 59, 61, 70, 49, 79, 58, 42, 76, 59, 7…
$ hours            <dbl> 35.0, 32.0, 32.0, 30.1, 35.0, 33.4, 34.0, 34.0, 33.0,…
$ emergent_country <fct> yes, no, no, no, yes, no, yes, yes, yes, yes, yes, no…

Algoritmo SVM para Clasificación y Regresión

Las Máquinas de Soporte Vectorial (SVM) son una técnica de aprendizaje supervisado utilizada tanto para clasificación (SVC) como para regresión (SVR). En su forma más básica, el objetivo de SVM es encontrar un hiperplano en un espacio N-dimensional (N — el número de características) que clasifique claramente los puntos de datos.

SVM para Clasificación

En clasificación, SVM busca el hiperplano que separa mejor las clases con el margen más amplio. Este hiperplano se define de tal manera que la distancia entre el hiperplano y el punto de datos más cercano de cada clase (vectores de soporte) es maximizada. Matemáticamente, si tenemos un conjunto de entrenamiento de puntos de datos \(x_i\) con etiquetas \(y_i\) donde \(y_i \in \{1, -1\}\), el hiperplano se define como los puntos \(x\) que satisfacen la ecuación \(w \cdot x - b = 0\). Aquí, \(w\) es el vector normal al hiperplano, y \(b\) es el sesgo.

SVM para Regresión

En regresión (SVR), el objetivo es encontrar un hiperplano que se ajuste lo mejor posible a los datos dentro de un margen ε, pero al mismo tiempo sea lo más plano posible. Esto se logra a través de un enfoque similar al de la clasificación, pero en este caso, el hiperplano se diseña para encajar dentro de un tubo ε que captura la mayoría de los puntos.

Preprocesamiento de Datos

Es importante escalar las variables predictoras antes de aplicar SVM, ya que el algoritmo es sensible a las escalas de las características. Esto asegura que todas las características contribuyan equitativamente al modelo.

Ventajas de SVM

  • Alto rendimiento en espacios de alta dimensión.
  • Efectivo en casos donde el número de dimensiones supera el número de muestras.
  • Versátil, gracias a la función del kernel.

Desventajas de SVM

  • Selección del kernel y sus parámetros puede ser complicado.
  • No es adecuado para grandes conjuntos de datos debido a su alta complejidad computacional.
  • Resultados difíciles de interpretar en comparación con algunos modelos más simples.

Comparación con Otros Modelos

  • CART y RandomForest: Más interpretables y pueden manejar mejor los datos no lineales y las interacciones.
  • KNN: SVM es más eficaz en espacios de alta dimensión pero KNN es más simple y fácil de implementar.
  • Modelos de regresión logística: Menos complejos y ofrecen resultados más interpretables, pero SVM puede manejar mejor los espacios de características complejos y no lineales.

Ejemplo en R

Clasificación con SVM

Code
# Preprocesamiento
load("data/corruption.RData")
corruption <- corruption %>%
  dplyr::select(-country) %>%
  # escalado
  mutate_if(is.numeric, scale) 
Code
model_svc <- svm(emergent_country ~ ., data = corruption)
Code
predictions_svc <- predict(model_svc, corruption)

Ejercicios

  1. Completar el código para dibujar la curva ROC, mostrar matriz de confusión y resto de métricas

  2. Implementar el ejercicio para el caso de regresión, usando como variable objetivo cpi

References

Rodrigo, Joaquín Amat. 2020. “Árboles de Decisión, Random Forest, Gradient Boosting y C5.0.” cienciadedatos.net. https://cienciadedatos.net/documentos/34_maquinas_de_vector_soporte_support_vector_machines#Introducci%C3%B3n.