Artículos originales
Recepción: 10 Agosto 2021
Aprobación: 15 Septiembre 2021
Publicación: 30 Septiembre 2021
Resumen: Debido al problema recurrente presentado en los alumnos en lo que se refiere a su desempeño académico, se desarrolló una aplicación de redes neuronales con el objetivo de ayudar al docente, ya que esta es capaz de dar resultados de las notas finales de los alumnos y ayudará al docente a comprender el porqué de los resultados, puesto que esta red neuronal toma en cuenta diferentes factores que conlleva al alumno a tener una nota aprobatoria o desaprobatoria. Para obtener los resultados se trabajó en el entrenamiento de la red neuronal mediante el modelo de clasificación el cual muestra en el resultado la cantidad de alumnos aprobados o desaprobados y el otro modelo de regresión el cual predice la nota de un alumno dadas las características de su encuesta inicial, ambos modelos fueron de gran ayuda para predecir el comportamiento de los datos.
Palabras clave: Clasificación, Redes neuronales, Regresión, Predicción, Compartimiento del alumno.
Abstract: Due to the recurring problem presented in the students regarding their academic performance, an application of neural networks was developed with the aim of helping the teacher, since it is capable of giving results of the final grades of the students and will help the teacher to understand the reason for the results, since this neural network takes into account different factors that lead the student to have a passing or failing grade. To obtain the results, we worked on the training of the neural network through the classification model which shows in the result the number of approved or disapproved students and the other regression model which predicts a student's grade given the characteristics of their initial survey, both models were of great help in predicting the behavior of the data.
Keywords: Classification, Neural networks, Regression, Prediction, Student sharing..
Introducción
En este trabajo se presenta el desarrollo de una aplicación con el uso de Redes Neuronales multicapa el cual busca clasificar a los alumnos de acuerdo a su nota para ver si serán aprobados o desaprobados en un curso, a su vez esta toma en cuenta los diferentes factores que influyen en la nota final del alumno los cuales fueron clasificados en variables independientes y dependientes que posteriormente serán sometidos a una limpieza de datos donde se tratarán datos duplicados y datos anómalos y estarán listos para ser normalizados y almacenados en un dataset.
La herramienta que se utilizó para el desarrollo de la aplicación es Anaconda en su entorno de Spyder en el lenguaje de python donde para construir la red neuronal fue necesario instalar diferentes librerías las cuales ayudarán a predecir el comportamiento de los datos y las fallas que influyen en el desempeño de los alumnos los cuales serán reflejados en las notas finales. Esta aplicación tiene como objetivo ayudar a los profesores a proveer la nota final de sus alumnos y verificar las causas y los factores que influyen a que un alumno tenga nota aprobatoria o desaprobatoria al final del curso. Así también el modelo de regresión permitirá predecir la nota final de un alumno dadas las características iniciales de este.
Materiales y métodos o Metodología computacional
1.1. Descripción general de la aplicación:
Un Instituto Politécnico de Informática (IPI) quiere desarrollar una aplicación que apoye a los docentes a proveer el resultado final de aprobado o no aprobado para los estudiantes. Este resultado deberá ser propuesto por la aplicación en función de los datos que los estudiantes brindaron al inicio del curso.
Así mismo, de estas encuestas se obtuvieron 1 044 encuestas recogidas en 2 IPIs de una ciudad durante el curso anterior en las asignaturas de inglés y matemáticas, así como el rendimiento de dichos estudiantes.
1.2. Selección y justificación del modelo
Debido a la capacidad de aprendizaje, las redes neuronales pueden llevar a cabo ciertas tareas basadas en un entrenamiento. Por ello, para abordar esta etapa inicial de la investigación, se pensó en un proceso de entrenamiento de la red neuronal en el cual se expondrá un conjunto de patrones de entrada y se ajustarán los pesos de forma que al final de este proceso se obtengan las salidas deseadas, que en este momento están clasificadas en dos categorías diferentes aprobado o desaprobado.
Siendo así que justificamos el uso de un modelo de clasificación para la predicción de si estará aprobado o no, y el uso de un modelo de regresión para predecir la nota como tal.
1.3. Herramientas
Anaconda
Es una distribución libre y abierta de los lenguajes Python y R, utilizada en ciencia de datos, y aprendizaje automático (machine learning). Este incluye procesamiento de grandes volúmenes de información, análisis predictivo y cómputos científicos. Está orientado a simplificar el despliegue y administración de los paquetes de software [1].
Spyder
Es un entorno científico escrito en Python, para Python, y diseñado por y para científicos, ingenieros y analistas de datos. El cual ofrece una combinación única de funciones avanzadas de edición, análisis, depuración y creación de perfiles de una herramienta de desarrollo integral con la exploración de datos, ejecución interactiva, inspección profunda y hermosas capacidades de visualización de un paquete científico y para aprovechar todas estas funciones es necesario instalar el entorno de anaconda [2].
1.4. Librerías y framework
Para el desarrollo de la aplicación se instalaron librerías que facilitarán el tratamiento de los datos las cuales son:
Theano
Es un compilador para matemáticas en Python. Sabe cómo tomar sus estructuras para convertirlas en código eficiente que utiliza NumPy, el cual fue diseñado específicamente para manejar los tipos de computación requeridos para grandes empresas como los algoritmos de redes neuronales usados en deep learning [3].
Tensor Flow
Es una librería Python para computación numérica la cual puede utilizarse para crear modelos de Deep Learning directamente o utilizando librerías de envolturas que simplifican el proceso, fue diseñado para su uso tanto en investigación y desarrollo, como por ejemplo en sistemas de producción. Puede funcionar en una sola CPUs, GPUs, así como dispositivos móviles y sistemas distribuidos a gran escala de cientos de máquinas [4].
Keras
Es un framework de alto nivel para el aprendizaje, escrito en Python y capaz de correr sobre los frameworks TensorFlow, CNTK, o Theano. Fue desarrollado con el objeto de facilitar un proceso de experimentación rápida [5].
Numpy
Es una extensión de Python, que le agrega mayor soporte para vectores y matrices, constituyendo una biblioteca de funciones matemáticas de alto nivel para operar con esos vectores o matrices [6].
Matplotlib.pyplop
Es una interfaz basada en estados para matplotlib. Proporciona una forma de trazado similar a MATLAB.Pyplot está diseñado principalmente para gráficos interactivos y casos simples de generación de gráficos programáticos [7].
Pandas
Es una herramienta de manipulación y análisis de datos de código abierto rápida, potente, flexible y fácil de usar, construida sobre el lenguaje de programación Python [8].
Sklearn.metrics
Implementa funciones que evalúan el error de predicción para propósitos específicos. Estas métricas se detallan en las secciones en las métricas de clasificación, MULTILABEL métricas de clasificación, las métricas de regresión y las métricas de agrupamiento [9].
1.5. Selección del lenguaje de desarrollo
La elección del lenguaje para el desarrollo de esta investigación viene dado gracias a las ventajas de la misma; en este sentido, el trabajar con el lenguaje Python puede brindar facilidades como su sencillez, la usabilidad multiplataforma que permite la obtención de paquetes para la preparación del código en distintas plataformas. Otro punto resaltante, es la flexibilidad del lenguaje al permitir trabajar con programación Orientada a Objetos o scripting.
Sin embargo, uno de los aspectos más interesantes de este lenguaje es que permite trabajar el desarrollo de RN con librerías gratuitas propias del lenguaje, las cuales permiten acelerar el proceso de desarrollo e implementación [10].
1.6. Descripción de los procesos
Tratamiento y limpieza de datos
Lo primero es tratar el dataset proporcionado, en éste, se corregirán registros(encuestas) erróneas. Este proceso permitirá identificar registros incompletos, incorrectos, inexactos o no pertinentes, posterior a ello y con el dataset limpio, se puede comenzar a trabajar en el objetivo de esta investigación.
Transformación de Datos
Lo primero es el reconocimiento de las variables dependientes e independientes sobre las cuales se va a trabajar y modelar la red neuronal.
Y Nota final de curso
X_0 Asignatura.
X_1 Escuela.
X_2 Sexo del estudiante.
X_3 Edad del estudiante.
X_4 Tipo de residencia del estudiante (Urbana o Rural).
X_5 Tamaño del núcleo familiar del estudiante.
X_6 Si el estudiante tiene padres separados.
X_7 Nivel escolar de la madre.
X_8 Nivel escolar del padre.
X_9 Trabajo de la madre.
X_10 Trabajo del padre.
X_11 Razón por la que el estudiante escogió esa escuela en la secundaria.
X_12 Tutor legal.
X_13 Tiempo de viaje desde la casa del estudiante a la escuela. X_14 Tiempo de estudio semanal en horas.
X_14 Tiempo de estudio semanal en horas.
X_15 Número de asignaturas desaprobadas en la secundaria.
X_16 Si la escuela le brinda al estudiante atención diferenciada.
X_17 Si la familia del estudiante le presta atención diferenciada.
X_18 Si el estudiante ha contratado a terceras personas para que lo ayuden en las asignaturas.
X_19 Si el estudiante participa en actividades extracurriculares de la escuela.
X_20 Si el estudiante ha sido atendido en la enfermería de la escuela.
X_21 Si el estudiante pretende estudiar en la Universidad.
X_22 Si el estudiante tiene internet en su hogar.
X_23 Si el estudiante está en una relación de pareja.
X_24 Calidad de la relación del estudiante con su familia.
X_25 Tiempo libre después de la escuela.
X_26 Si el estudiante sale con sus amigos.
X_27 Cantidad de alcohol consumido entre semana.
X_28 Cantidad de alcohol consumido en el fin de semana.
X_29 Estado de salud
X_30 Cantidad de ausencias a la escuela durante el curso.
X_31 Nota del primer trabajo de control parcial.
X_32 Nota del segundo trabajo de control parcial.
De esta manera, se debe identificar aquellas variables categóricas y no categóricas. Sin embargo, se ha considerado trabajar con Y_1 para la clasificación (desaprobado/aprobado) y Y_2 para la regresión (campo de notas finales).
Ahora, a las variables mostradas en el cuadro anterior se les aplicó un preprocesamiento, es decir la asignación de un equivalente numérico, teniendo en cuenta lo que representaba cada campo, para su posterior normalización, como resultado del mismo tenemos las siguientes equivalencias:
Como resultado final de esta fase, se tuvo el dataset a entrenar:
Dataset preprocesado - Encuestas de inicio de curso y notas.
Entrenamiento y validación
Fase de preprocesamiento de datos
Fase de entrenamiento
Fase de Creación de la red neuronal
Sequential es utilizada para que la red neuronal sea creada en secuencias, capa por capa, manualmente
Fase de predicción y comprobación
Resultados y discusión
En esta parte del documento, se presentan los resultados de la construcción de la red neuronal para el tema de investigación.
Modelo de regresión
Las métricas del modelo creado fueron las siguientes:
Modelo de clasificación
La lectura de la matriz de confusión es la siguiente: True Negative [TN], True Positive [TP], False Positive [FP], False Negative [FN]. En nuestro caso, tenemos el siguiente resultado:
Comparativa
Para poder evaluar los dos métodos, adecuamos los resultados y_predictB = (y_predict>0.6) para tener el número de aprobados versus el número de desaprobados como se muestra en la figura 25. La misma la comparamos con la Figura 24, podemos ver que la predicción del modelo de clasificación con respecto al regresión es más acertada.
Conclusiones
En conclusión, una red neuronal de regresión nos permite predecir valores numéricos es decir la nota del alumno, sin embargo, al ser continuos los datos que calcula, hay un mayor ruido en los indicadores como la exactitud. Podemos medir la calidad de la predicción con métricas como el error absoluto medio, error cuadrático medio, varianza, entre otros. La red neuronal de clasificación nos permite predecir si el estudiante estará o no aprobado, la misma se puede medir empleando métricas tales como el cuadro de confusión, la precisión, la exactitud, entre otros. Los datos que poseemos tenemos que pre procesarlos de acuerdo al modelo que utilicemos y normalizarlos de ser necesario. entendiendo la relación de cada componente con el modelo predictivo.
Referencias
[1] Anaconda su kit de herramientas de ciencia de datos. [Online]. Available: https://www.anaconda.com/products/individual
[2] Spyder vision general. [Online]. Available: https://www.spyder-ide.org/
[3] Theano Project description. [Online]. Available: https://pypi.org/project/Theano/
[4] J. Buhigas“Todo lo que necesitas saber sobre Tensor Flow, la plataforma para Inteligencia Artificial de Google”,febrero, 2018 [Online]. Available: https://puentesdigitales.com/2018/02/14/todo-lo-que-necesitas-saber-sobre-tensorflow-la-plataforma-para-inte ligencia-artificial-de-google/#:~:text=TensorFlow%20es%20una%20biblioteca%20de,gr%C3%A1ficos%20d e%20flujo%20de%20datos.&text=La%20arquitectura%20flexible%20de%20TensorFlow,m%C3%B3viles% 20con%20una%20sola%20API.
[5] Desarrollo de redes neuronales con keras. [Online]. Available: https://unipython.com/desarrolla-primera-red-neural-python-keras-paso-paso/#:~:text=Keras%20es%20una% 20librer%C3%ADa%20Python,unas%20pocas%20l%C3%ADneas%20de%20c%C3%B3digo.
[6] L.Gonzales“Introducción a la librería NumPy de Python”,setiembre, 2018. [Online]. Available: https://ligdigonzalez.com/introduccion-a-numpy-python-1/#:~:text=NumPy%20es%20un%20paquete%20de, garantizan%20c%C3%A1lculos%20eficientes%20con%20matrices.
[7] Matplotlib: funciones principales. [Online]. Available: https://unipython.com/matplotlib-funciones-principales/
[8] Introducción a Pandas. [Online]. Available: https://programacion.net/articulo/introduccion_a_pandas_1632
[9] Metrics and scoring: quantifying the quality of predictions [Online]. Available: https://scikit-learn.org/stable/modules/model_evaluation.html
[10] Ventajas del uso de Python [Online ]. Available https://blog.enzymeadvisinggroup.com/redes-neuronales-python#:~:text=La%20principal%20caracter%C3% ADstica%20de%20Python,multiplataforma%20y%20de%20tipado%20fuerte.
Información adicional
Tipo de artículo: Artículos originales
Temática: Inteligencia artificial
Enlace alternativo
https://revistas.ulasalle.edu.pe/innosoft/article/view/46 (html)
https://revistas.ulasalle.edu.pe/innosoft/article/view/46/46 (pdf)
https://revistas.ulasalle.edu.pe/innosoft/article/view/46/47 (html)