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
-
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.
-
Etiquetas:
- Las etiquetas son los valores de salida conocidos en los datos de entrenamiento.
-
Modelos de Aprendizaje Supervisado:
- Regresión: Predice un valor continuo.
- Clasificación: Predice una categoría o clase.
-
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
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
-
Cargar los Datos:
data(iris)
carga el conjunto de datosiris
en el entorno de R.head(iris)
muestra las primeras filas del conjunto de datos.
-
Dividir los Datos:
sample.split
divide los datos en entrenamiento y prueba.subset
crea los subconjuntos de datos de entrenamiento y prueba.
-
Entrenar el Modelo:
rpart
entrena un modelo de árbol de decisión utilizando las características (.
) para predecir la especie (Species
).
-
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.
- Carga el conjunto de datos
mtcars
. - Divide los datos en entrenamiento y prueba.
- Entrena un modelo de regresión lineal.
- 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
-
Cargar los Datos:
data(mtcars)
carga el conjunto de datosmtcars
.head(mtcars)
muestra las primeras filas del conjunto de datos.
-
Dividir los Datos:
sample.split
divide los datos en entrenamiento y prueba.subset
crea los subconjuntos de datos de entrenamiento y prueba.
-
Entrenar el Modelo:
lm
entrena un modelo de regresión lineal utilizando las características (.
) para predecir el consumo de combustible (mpg
).
-
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
- Introducción a R y RStudio
- Sintaxis Básica de R
- Tipos y Estructuras de Datos
- Operaciones y Funciones Básicas
- Importación y Exportación de Datos
Módulo 2: Manipulación de Datos
- Vectores y Listas
- Matrices y Arreglos
- Data Frames
- Factores
- Manipulación de Datos con dplyr
- Manipulación de Cadenas
Módulo 3: Visualización de Datos
- Introducción a la Visualización de Datos
- Gráficos Base R
- Fundamentos de ggplot2
- ggplot2 Avanzado
- Visualizaciones Interactivas con plotly
Módulo 4: Análisis Estadístico
- Estadísticas Descriptivas
- Distribuciones de Probabilidad
- Pruebas de Hipótesis
- Correlación y Regresión
- ANOVA y Pruebas Chi-Cuadrado
Módulo 5: Manejo Avanzado de Datos
- Manejo de Fechas y Tiempos
- Reestructuración de Datos
- Trabajo con Grandes Conjuntos de Datos
- Web Scraping
- APIs y JSON
Módulo 6: Conceptos Avanzados de Programación
- Escritura de Funciones
- Depuración y Manejo de Errores
- Programación Orientada a Objetos en R
- Programación Funcional
- Computación Paralela
Módulo 7: Aprendizaje Automático con R
- Introducción al Aprendizaje Automático
- Preprocesamiento de Datos
- Aprendizaje Supervisado
- Aprendizaje No Supervisado
- Evaluación y Ajuste de Modelos
Módulo 8: Temas Especializados
- Análisis de Series Temporales
- Análisis de Datos Espaciales
- Minería de Textos y Procesamiento de Lenguaje Natural
- Bioinformática con R
- Análisis de Datos Financieros