El aprendizaje supervisado es una técnica de aprendizaje automático donde un modelo se entrena utilizando un conjunto de datos etiquetados. Esto significa que cada ejemplo de entrenamiento está asociado con una etiqueta o valor de salida conocido. El objetivo es que el modelo aprenda a predecir la etiqueta o valor de salida para nuevos datos no etiquetados.

Conceptos Clave

  1. Datos de Entrenamiento y Prueba:

    • Datos de Entrenamiento: Conjunto de datos utilizados para entrenar el modelo.
    • Datos de Prueba: Conjunto de datos utilizados para evaluar el rendimiento del modelo.
  2. Etiquetas:

    • Las etiquetas son los valores de salida conocidos en los datos de entrenamiento.
  3. Modelos de Aprendizaje Supervisado:

    • Regresión: Predice un valor continuo.
    • Clasificación: Predice una categoría o clase.
  4. Métricas de Evaluación:

    • Para Regresión: Error Cuadrático Medio (MSE), Error Absoluto Medio (MAE), R².
    • Para Clasificación: Precisión, Recall, F1-Score, Matriz de Confusión.

Ejemplo Práctico: Clasificación con R

Vamos a construir un modelo de clasificación utilizando el conjunto de datos iris, que es un conjunto de datos clásico en el aprendizaje automático.

Paso 1: Cargar los Datos

# Cargar el conjunto de datos iris
data(iris)
head(iris)

Paso 2: Dividir los Datos en Entrenamiento y Prueba

# Cargar la librería caTools para dividir los datos
library(caTools)

# Establecer una semilla para reproducibilidad
set.seed(123)

# Dividir los datos en 70% entrenamiento y 30% prueba
split <- sample.split(iris$Species, SplitRatio = 0.7)
train_data <- subset(iris, split == TRUE)
test_data <- subset(iris, split == FALSE)

Paso 3: Entrenar un Modelo de Clasificación

Usaremos un modelo de árboles de decisión para este ejemplo.

# Cargar la librería rpart para árboles de decisión
library(rpart)

# Entrenar el modelo
model <- rpart(Species ~ ., data = train_data, method = "class")

Paso 4: Evaluar el Modelo

# Hacer predicciones en el conjunto de prueba
predictions <- predict(model, test_data, type = "class")

# Crear una matriz de confusión
confusion_matrix <- table(test_data$Species, predictions)
print(confusion_matrix)

# Calcular la precisión
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Precisión:", accuracy))

Explicación del Código

  1. Cargar los Datos:

    • data(iris) carga el conjunto de datos iris en el entorno de R.
    • head(iris) muestra las primeras filas del conjunto de datos.
  2. Dividir los Datos:

    • sample.split divide los datos en entrenamiento y prueba.
    • subset crea los subconjuntos de datos de entrenamiento y prueba.
  3. Entrenar el Modelo:

    • rpart entrena un modelo de árbol de decisión utilizando las características (.) para predecir la especie (Species).
  4. Evaluar el Modelo:

    • predict hace predicciones en el conjunto de prueba.
    • table crea una matriz de confusión para comparar las predicciones con las etiquetas reales.
    • sum(diag(confusion_matrix)) / sum(confusion_matrix) calcula la precisión del modelo.

Ejercicio Práctico

Ejercicio 1: Regresión Lineal

Utiliza el conjunto de datos mtcars para construir un modelo de regresión lineal que prediga el consumo de combustible (mpg) basado en las características del automóvil.

  1. Carga el conjunto de datos mtcars.
  2. Divide los datos en entrenamiento y prueba.
  3. Entrena un modelo de regresión lineal.
  4. Evalúa el modelo utilizando el Error Cuadrático Medio (MSE).

Solución

# Paso 1: Cargar los Datos
data(mtcars)
head(mtcars)

# Paso 2: Dividir los Datos
set.seed(123)
split <- sample.split(mtcars$mpg, SplitRatio = 0.7)
train_data <- subset(mtcars, split == TRUE)
test_data <- subset(mtcars, split == FALSE)

# Paso 3: Entrenar el Modelo
model <- lm(mpg ~ ., data = train_data)

# Paso 4: Evaluar el Modelo
predictions <- predict(model, test_data)
mse <- mean((test_data$mpg - predictions)^2)
print(paste("MSE:", mse))

Explicación del Código

  1. Cargar los Datos:

    • data(mtcars) carga el conjunto de datos mtcars.
    • head(mtcars) muestra las primeras filas del conjunto de datos.
  2. Dividir los Datos:

    • sample.split divide los datos en entrenamiento y prueba.
    • subset crea los subconjuntos de datos de entrenamiento y prueba.
  3. Entrenar el Modelo:

    • lm entrena un modelo de regresión lineal utilizando las características (.) para predecir el consumo de combustible (mpg).
  4. Evaluar el Modelo:

    • predict hace predicciones en el conjunto de prueba.
    • mean((test_data$mpg - predictions)^2) calcula el Error Cuadrático Medio (MSE).

Conclusión

En esta sección, hemos aprendido los conceptos básicos del aprendizaje supervisado y cómo implementar modelos de clasificación y regresión en R. Hemos cubierto cómo dividir los datos en conjuntos de entrenamiento y prueba, entrenar modelos y evaluar su rendimiento. En el siguiente módulo, exploraremos técnicas de aprendizaje no supervisado.

Programación en R: De Principiante a Avanzado

Módulo 1: Introducción a R

Módulo 2: Manipulación de Datos

Módulo 3: Visualización de Datos

Módulo 4: Análisis Estadístico

Módulo 5: Manejo Avanzado de Datos

Módulo 6: Conceptos Avanzados de Programación

Módulo 7: Aprendizaje Automático con R

Módulo 8: Temas Especializados

Módulo 9: Proyecto y Estudios de Caso

© Copyright 2024. Todos los derechos reservados