Pronóstico de Puntaje en Matemáticas con Redes Neuronales
Clase 33 de 37 • Curso de Estadística Inferencial con R
Resumen
¿Cómo ajustar una red neuronal con datos reales?
En el emocionante mundo del aprendizaje de máquinas, las redes neuronales juegan un papel crucial al predecir resultados basados en datos. Pero, ¿cómo empezamos a trabajar con ellas usando datos reales? Acompáñame a descubrirlo a través del siguiente análisis que utilizará una muestra para predecir el puntaje en matemáticas usando variables socioeconómicas.
¿Qué librerías se usaron en el experimento?
Para construir nuestra red neuronal, se utilizaron las librerías saber
y nnet
en R. Estas herramientas son esenciales para manejar los datos y construir modelos de redes neuronales de manera efectiva. Aquí tienes cómo invocarlas en tu entorno de programación:
library(saber)
library(nnet)
¿Cuáles fueron las variables y el tamaño de la muestra?
Se seleccionó un tamaño muestral de 2000 observaciones. Las variables utilizadas son principalmente socioeconómicas, proporcionando información sobre el hogar del estudiante:
- Cantidad de personas en el hogar
- Número de cuartos
- Poseer lavadora, nevera, horno, DVD, microondas, y automóvil
También se consideraron, aunque no utilizadas en este ejercicio específico, variables tecnológicas como tener Internet o un teléfono móvil. Esto abre la posibilidad de integrar otros tipos de datos en futuras modelizaciones.
¿Cómo se gestionó la muestra?
El proceso de selección de la muestra se implementó mediante un vector lógico, lo cual ayuda a identificar las filas que formarán parte de esta muestra aleatoria. Aquí se muestra el enfoque utilizado:
indices_muestra <- seq_len(nrow(datos)) %in% sample(seq_len(nrow(datos)), size = tamano_muestra)
muestra <- datos[indices_muestra, variables]
Crear una muestra utilizando índices lógicos permite mantener solo las observaciones necesarias y facilita el análisis posterior al reducir el conjunto de datos a un tamaño manejable.
¿Cómo se contruyó la red neuronal?
Llegó el momento de crear la red neuronal. Utilizando nnet
, se estableció un modelo para pronosticar el puntaje de matemáticas como respuesta, utilizando las variables seleccionadas previamente:
red_neuronal <- nnet(puntaje_matematicas ~ ., data = muestra, size = 10, linout = TRUE, trace = TRUE)
Aquí, size
especifica el número de neuronas en la capa oculta, y linout = TRUE
indica que se desea una salida lineal.
¿Qué resultados se obtuvieron y cómo se visualizaron?
Al graficar los resultados, se busca que las predicciones estén alineadas con los valores reales del puntaje en matemáticas. Se utilizó el siguiente código para visualizarlo:
plot(muestra$puntaje_matematicas, predict(red_neuronal, muestra), col = 2, lwd = 2)
abline(0, 1)
Aunque los resultados muestran grados de dispersión y cierta desviación, el gráfico revela si el modelo está haciendo un trabajo razonablemente preciso al predecir los resultados esperados.
¿Cómo mejorar la predicción del modelo?
La red neuronal construida puede beneficiarse de un proceso de optimización. La clave está en explorar a fondo la base de datos y detectar las variables que tengan una alta correlación con el puntaje de matemáticas. Podrían incluirse:
- Puntajes de otras asignaturas (como física)
- Características del colegio
La exploración y análisis minucioso de estas variables pueden mejorar significativamente las predicciones futuras, haciendo hincapié en aquellas que reflejen un impacto más significativo sobre el desempeño académico.
Recuerda, el camino del aprendizaje automático es un proceso continuo de experimentación y optimización. Sigue explorando, analizando y ajustando tu modelo para obtener los mejores resultados posibles. ¡La aventura acaba de comenzar!