scieee AI-readable full text Open interactive document viewer

Modelo de correlación QoS/QoE en entornos universitarios

Barghuthi Barrena, Sara

Abstract

El Machine Learning es una rama de la inteligencia artificial que ha cobrado gran importancia en los últimos años debido a su capacidad para aprender patrones y tomar decisiones en base a datos. En la actualidad, esta tecnología se utiliza en una amplia variedad de aplicaciones, desde el procesamiento de imágenes y el reconocimiento de voz hasta la predicción del comportamiento del consumidor y la toma de decisiones empresariales. El objetivo específico del presente trabajo de final de máster es desarrollar un modelo de correlación entre la QoE y la QoS utilizando técnicas de Machine Learning. Para ello, se llevará a cabo un estudio en entornos universitarios de diferentes perfiles, en concreto en la ESI de Bilbao y en la Facultad de Educación de Bilbao. El propósito es determinar si existe una correlación entre la calidad experimentada y la calidad del servicio objetivo en estos entornos mediante el uso de técnicas de Machine Learning, que permitirá desarrollar un modelo preciso y eficiente para este propósito.

Full text

MODELO DE CORRELACIÓN QoS/QoE EN ENTORNOS UNIVERSITARIOS Estudiante: Barghuthi Barrena, Sara Directora: Ibarrola Armendariz, Eva Curso: 2022-2023 MÁSTER UNIVERSITARIO EN INGENIERÍA DE TELECOMUNICACIÓN TRABAJO DE FIN DE MÁSTER ii Resumen El Machine Learning es una rama de la inteligencia artificial que ha cobrado gran importancia en los últimos años debido a su capacidad para aprender patrones y tomar decisiones en base a datos. En la actualidad, esta tecnología se utiliza en una amplia variedad de aplicaciones, desde el procesamiento de imágenes y el reconocimiento de voz hasta la predicción del comportamiento del consumidor y la toma de decisiones empresariales. El objetivo específico del presente trabajo de final de máster es desarrollar un modelo de correlación entre la QoE y la QoS utilizando técnicas de Machine Learning. Para ello, se llevará a cabo un estudio en entornos universitarios de diferentes perfiles, en concreto en la ESI de Bilbao y en la Facultad de Educación de Bilbao. El propósito es determinar si existe una correlación entre la calidad experimentada y la calidad del servicio objetivo en estos entornos mediante el uso de técnicas de Machine Learning, que permitirá desarrollar un modelo preciso y eficiente para este propósito. Laburpena Machine Learning, adimen artifizialaren adar bat da, azken urteetan oso garrantzitsu bihurtu da, datuen patronak ikasteko eta erabakiak hartzeko gaitasuna dela eta. Gaur egun, teknologia hori aplikazio anitzetan erabiltzen da, irudiak prozesatzeko eta ahotsaren ezagutza lortzeko, bezeroaren jokabidea eta enpresarako erabakiak hartzea barne. TFM honetako helburu espezifikoena Machine Learning teknikak erabiliz QoE eta QoS arteko korrelazio-metodo bat garatzea da. Horretarako, perfila ezberdin duten unibertsitate inguruetan azterketa bat burutuko da, bai eta Bilboko ESI eta Hezkuntza Fakultatean ere. Helburua da erabiltzaileen bizi emandako kalitatea eta objektibo duten zerbitzuaren kalitatea artean korrelazio bat existitzen den edo ez jakitea eta zerbitzuaren kalitatea hobetzeko zein jardun ahal den erabiltzaileen bizi emandako kalitatea hobetzeko. Machine Learning teknikak erabiliz, helburu hau lortzeko eredu zehatza eta eraginkorra garatuko da. Abstract Machine Learning is a branch of Artificial Intelligence that has gained significant importance in recent years due to its ability to learn patterns and make decisions based on data. Currently, this technology is used in a wide variety of applications, from image processing and voice recognition to predicting consumer behavior and making business decisions. The specific objective of this Master’s Thesis is to develop a model for correlating QoE (experienced quality) and QoS (objective service quality) using Machine Learning techniques. To achieve this, a study will be conducted in university environments of different profiles, specifically at the ESI of Bilbao and the Faculty of Education of Bilbao. The purpose is to determine if there is a correlation between the experienced quality and objective service quality in these environments. The use of Machine Learning techniques will allow for the development of an accurate and efficient model for this purpose. Palabras clave: Machine Learning, QoS, QoE, correlación. i Tabla de contenido 1. INTRODUCCIÓN .................................................................................................1 2. CONTEXTO .........................................................................................................2 3. OBJETIVOS .........................................................................................................3 4. BENEFICIOS ........................................................................................................4 4.1. Beneficios técnicos................................................................................................ 4 4.2. Beneficios económicos .......................................................................................... 4 4.3. Beneficios sociales ................................................................................................ 4 5. ESTADO DEL ARTE ..............................................................................................6 5.1. Historia y evolución .............................................................................................. 6 5.2. Análisis de algoritmos de ML ................................................................................. 6 5.2.1. Aprendizaje supervisado .................................................................................................... 7 5.2.2. Aprendizaje no supervisado ............................................................................................... 7 5.2.3. Aprendizaje por refuerzo.................................................................................................... 9 5.2.4. Aprendizaje profundo ....................................................................................................... 10 5.3. Análisis de entornos de desarrollo y lenguajes de programación para el ML ......... 11 5.3.1. Entornos de desarrollo ..................................................................................................... 11 5.3.1. Lenguajes de programación ............................................................................................. 14 5.4. Análisis de parámetros QoS en entornos WiFi ...................................................... 16 5.4.1. Ancho de banda ................................................................................................................ 17 5.4.2. Throughput ....................................................................................................................... 18 5.4.3. Latencia............................................................................................................................. 18 5.4.4. Jitter .................................................................................................................................. 19 5.4.5. Pérdida de paquetes ......................................................................................................... 20 5.4.6. SNR.................................................................................................................................... 21 5.4.7. Priorización de tráfico....................................................................................................... 22 5.5. Análisis factores de influencia para la QoE en entornos WiFi ................................ 22 5.5.1. Factores de influencia humana ........................................................................................ 24 5.5.2. Factores de influencia del sistema ................................................................................... 25 5.5.3. Factor de influencia del contexto ..................................................................................... 25 5.6. Análisis de metodologías de valoración ............................................................... 26 6. ANÁLISIS DE ALTERNATIVAS ............................................................................. 30 6.1. Identificación del parámetro QoS ........................................................................ 30 6.1.1. Throughput ....................................................................................................................... 31 6.1.2. SNR.................................................................................................................................... 31 6.1.3. Criterios de selección........................................................................................................ 32 6.2. Identificación del algoritmo de ML ...................................................................... 33 6.2.1. Regresión lineal ................................................................................................................ 34 6.2.2. Regresión Logística ........................................................................................................... 34 6.2.3. Criterios de selección........................................................................................................ 35 6.2.4. Redes neuronales feedforward ........................................................................................ 36 ii 6.2.5. Redes neuronales convolucionales .................................................................................. 38 6.2.6. Redes neuronales recurrentes ......................................................................................... 38 6.2.7. Criterios de selección........................................................................................................ 39 6.3. Factores de influencia ......................................................................................... 40 6.3.1. Factores humanos ............................................................................................................ 41 6.3.2. Factores del sistema ......................................................................................................... 43 6.3.3. Factores de contexto ........................................................................................................ 44 6.3.4. Criterios de selección........................................................................................................ 46 6.4. Entorno de desarrollo ......................................................................................... 48 6.4.1. Jupyter Notebooks............................................................................................................ 49 6.4.2. Google Colab..................................................................................................................... 49 6.4.3. DataSpell ........................................................................................................................... 50 6.4.4. Criterios de selección........................................................................................................ 50 6.5. Lenguaje de programación .................................................................................. 51 6.5.1. Python ............................................................................................................................... 51 6.5.2. R ........................................................................................................................................ 52 6.5.3. Criterios de selección........................................................................................................ 52 6.6. Metodología de valoración .................................................................................. 53 7. METODOLOGÍA ................................................................................................ 55 7.1. Descripción de la solución ................................................................................... 55 7.1.1. Desarrollo del modelo de correlación QoS/QoE .............................................................. 55 7.2. Análisis de resultados ......................................................................................... 81 7.3. Descripción de tareas .......................................................................................... 84 7.4. Diagrama de Gantt .............................................................................................. 86 8. ASPECTOS ECONÓMICOS .................................................................................. 87 8.1. Horas internas .................................................................................................... 87 8.2. Amortizaciones ................................................................................................... 87 8.3. Gastos ................................................................................................................ 87 8.4. Resumen del coste del proyecto .......................................................................... 87 9. ANÁLISIS DE RIESGOS ....................................................................................... 89 9.1. Demoras (A)........................................................................................................ 89 9.2. Fallo tecnológico (B) ............................................................................................ 89 9.3. Demoras en la aprobación de encuestas (C) ......................................................... 89 9.4. Falta de datos suficientes (D)............................................................................... 90 9.5. Matriz probabilidad – impacto ............................................................................ 90 10. CONCLUSIONES ............................................................................................ 91 11. BIBLIOGRAFÍA............................................................................................... 92 iii Índice de ilustraciones ILUSTRACIÓN 1: EJEMPLO DE UN ALGORITMO DE "CLUSTERING" .............................................................. 8 ILUSTRACIÓN 2: EJEMPLO DE REDUCCIÓN DE DIMENSIONALIDAD ............................................................. 8 ILUSTRACIÓN 3: APRENDIZAJE POR REFUERZO ............................................................................................ 9 ILUSTRACIÓN 4: RED NEURONAL ................................................................................................................ 10 ILUSTRACIÓN 5: ARQUITECTURA JERÁRQUICA QUE CLASIFICA LOS FI ...................................................... 23 ILUSTRACIÓN 6: MOS .................................................................................................................................. 27 ILUSTRACIÓN 7: DIAGRAMA DE LA ESTRUCTURA TÍPICA DE UNA RNAF .................................................... 37 ILUSTRACIÓN 8: RED NEURONAL RECURRENTE ......................................................................................... 39 ILUSTRACIÓN 9: EJEMPLO DE DATOS OBJETIVOS DE LA RED WIFI EN LA ESCUELA DE INGENIERÍA.......... 56 ILUSTRACIÓN 10: MAPA DE CALOR DE LA CORRELACIÓN ENTRE EL THROUGHPUT Y EL MOS EN LA FACULTAD DE INGENIERÍA ................................................................................................................. 65 ILUSTRACIÓN 11: MAPA DE CALOR DE LA CORRELACION ENTRE EL THROUGHPUT Y EL MOS EN LA FACULTAD DE EDUCACIÓN ................................................................................................................ 65 ILUSTRACIÓN 12: THROUGHPUT VS MOS: PREDICCIONES......................................................................... 71 ILUSTRACIÓN 13: THROUGHPUT VS. MOS: REALES.................................................................................... 71 ILUSTRACIÓN 14: THRPUGHPUT VS. MOS: PREDICCIONES ........................................................................ 71 ILUSTRACIÓN 15: THROPUGHPUT VS. MOS: REALES.................................................................................. 72 ILUSTRACIÓN 16: DIFERENCIAS ENTRE LAS DOS FACULTADES: VALORES REALES Y PREDICHOS .............. 73 ILUSTRACIÓN 17 THROUGHPUT VS. MOS: PREDICCIONES......................................................................... 78 ILUSTRACIÓN 18: THROUGHPUT VS. MOS: VALORES REALES .................................................................... 79 ILUSTRACIÓN 19: THROUGHPUT VS. MOS: PREDICCIONES........................................................................ 79 ILUSTRACIÓN 20: THRPUGHPUT VS. MOS: VALORES REALES .................................................................... 79 ILUSTRACIÓN 21: DIFERENCIAS ENTRE LAS DOS FACULTADES: VALORES REALES Y PREDICHOS .............. 81 ILUSTRACIÓN 22: DIAGRAMA DE GANTT .................................................................................................... 86 iv Índice de tablas TABLA 1: MATRIZ DE ALTERNATIVAS DE LOS PARÁMETROS QOS .............................................................. 32 TABLA 2: MATRIZ DE ALTERNATIVAS DE ALGORITMOS DE REGRESIÓN .................................................... 36 TABLA 3: MATRIZ DE ALTERNATIVAS DE LOS ALGORITMOS DE ML ........................................................... 40 TABLA 4: MATRIZ DE ALTERNATIVAS DE FACTORES HUMANOS ................................................................ 47 TABLA 5: MATRIZ DE ALTERNATIVAS DE FACTORES DE SISTEMA .............................................................. 47 TABLA 6: MATRIZ DE ALTERNATIVAS DE LOS FACTORES DE CONTEXTO.................................................... 48 TABLA 7: MATRIZ DE ALTERNATIVAS DE LOS ENTORNOS DE DESARROLLO .............................................. 51 TABLA 8: MATRIZ DE ALTERNATIVAS DE LOS LENGUAJES DE PROGRAMACIÓN ........................................ 53 TABLA 9: ESTADÍSTICAS DESCRIPTIVAS ....................................................................................................... 63 TABLA 10: MÉTRICAS DE EVALUACIÓN DEL MODELO ................................................................................ 69 TABLA 11: VALORES DE COEFICIENTE E INTERCEPTO ................................................................................. 70 TABLA 12: MÉTRICAS PARA LA EVALUACIÓN DEL MODELO ....................................................................... 78 TABLA 13: PRESUPUESTO CORRESPONDIENTE A LAS HORAS INTERNAS ................................................... 87 TABLA 14: PRESUPUESTO CORRESPONDIENTE A LAS AMORTIZACIONES .................................................. 87 TABLA 15: PRESUPUESTO CORRESPONDIENTE A LOS GASTOS .................................................................. 87 TABLA 16: RESUMEN DE LOS COSTES DEL PROYECTO ................................................................................ 87 TABLA 17: MATRIZ PROBABILIDAD-IMPACTO ............................................................................................ 90 v LISTA DE ACRÓNIMOS TFM: Trabajo de Fin de Máster ML: Machine Learning QoS: Quality of Service QoE: Quality of Experience KPI: Key Performance Indicator KQI: Key Quality Indicator SNR: signal-to-noise ratio FNN: Feed Forward Neural Network CNN: Convolutional Neural Network RNN: Recurrent Neural Network 1 1. INTRODUCCIÓN En la actualidad, la calidad de los servicios de red se ha convertido en un aspecto fundamental para las organizaciones que desean ofrecer un servicio de calidad a sus usuarios. En este sentido, la calidad de experiencia (QoE) es imprescindible para medir la satisfacción del usuario final. La QoE se refiere a la percepción subjetiva del usuario sobre la calidad del servicio prestado por la red, mientras que la calidad de servicio (QoS) se refiere a los parámetros objetivos de rendimiento de la red. Por otro lado, la aplicación de técnicas de Machine Learning (ML) está revolucionando muchos campos, incluido el de las redes y los servicios de comunicación. Con la creciente complejidad de las redes y la creciente cantidad de datos que se generan, el ML se ha convertido en una herramienta esencial para el análisis y la optimización de los servicios de red. En este contexto, el objetivo de este Trabajo de fin de Máster es desarrollar un modelo de correlación de la QoS/QoE utilizando técnicas de ML en entornos universitarios de diferentes perfiles. Se realizará un estudio en los entornos universitarios de ciencias y humanidades de la Universidad del País Vasco (UPV/EHU), con el fin de analizar los parámetros de QoS objetivos que pueden influir en las redes 802.11, así como los aspectos de influencia en la percepción de los usuarios de las redes WiFi. Se identificarán los indicadores de calidad (KQI) más interesantes para cada tipología y perfil de usuario y se analizarán metodologías de valoración óptimas para la evaluación de la QoE. Finalmente, se identificarán las técnicas de ML más adecuadas para la correlación de la QoS/QoE y se validarán mediante la comparación de los dos escenarios planteados para el caso de estudio. Este trabajo contribuirá al desarrollo de un modelo de correlación de la QoS/QoE que permita mejorar la calidad de los servicios de red en los entornos planteados, así como en otros ámbitos en los que la calidad de la red es fundamental para la satisfacción del usuario. El presente Trabajo Fin de Máster se ha realizado en el grupo de investigación NQaS, un grupo de investigación de la UPV/EHU, que se especializa en el estudio de las tecnologías utilizadas en las redes de datos en aspectos relacionados con la QoS y la seguridad. 2 2. CONTEXTO Para entender mejor la naturaleza de este proyecto, es esencial situarlo dentro de su contexto apropiado y analizar las circunstancias específicas bajo las cuales se está llevando a cabo. Esta contextualización permitirá una comprensión más profunda y completa de los objetivos, alcance y desafíos particulares de este trabajo. Este proyecto se enmarca en el trabajo del grupo de investigación QoXfera, centrado en la correlación entre la QoE y la QoS en redes inalámbricas 802.11, específicamente en entornos universitarios. Este estudio se basa en desarrollar un modelo utilizando técnicas de Machine Learning para esta correlación. Para realizar el modelo, se dispone de datos etiquetados derivados de encuestas de satisfacción, los cuales ofrecen una perspectiva directa sobre la QoE percibida por los usuarios. Por otro lado, se cuenta con datos recolectados directamente de las mediciones de red en entornos universitarios, que suministran información valiosa en torno a los parámetros técnicos que caracterizan la QoS. No obstante, es crucial mencionar que se han experimentado retrasos en la recepción del permiso requerido por parte de la Comisión de Ética de Investigación del País Vasco (CEISH). Como consecuencia, la realización de las encuestas no ha sido posible dentro del tiempo inicialmente estimado. Ante esta situación, se ha optado por identificar y aplicar un método alternativo para recopilar los datos de QoE. La utilidad y aplicabilidad de este modelo puede tener un impacto significativo en la optimización de redes WiFi en universidades, en términos de proporcionar una mejor experiencia de usuario y una gestión más eficiente del servicio. Por último, es importante destacar que todos los datos utilizados en este proyecto han sido aprobados por el Comité de Ética de la Universidad del País Vasco (UPV/EHU), en el marco de la línea de investigación de la memoria presentada M10/2023/184, titulada "Análisis para la gestión global de la QoS en red WiFi en entorno universitario". 9 El aprendizaje no supervisado tiene varias ventajas en comparación con el aprendizaje supervisado. En primer lugar, no requiere un conjunto de datos etiquetados, lo que puede ser una ventaja en situaciones en las que las etiquetas no están disponibles o son costosas de obtener. En segundo lugar, el aprendizaje no supervisado permite explorar los datos y descubrir patrones y estructuras que de otra forma podrían pasar desapercibidos. También es útil para la compresión y el resumen de datos, como la reducción de dimensionalidad y la generación de características. Sin embargo, el aprendizaje no supervisado también tiene algunas desventajas. En primer lugar, el rendimiento del modelo puede ser difícil de evaluar ya que no hay una respuesta correcta o etiqueta. En segundo lugar, puede ser difícil interpretar los resultados obtenidos, especialmente en tareas complejas. Por último, algunos algoritmos de aprendizaje no supervisado son sensibles a la calidad y la cantidad de los datos. 5.2.3. Aprendizaje por refuerzo El aprendizaje por refuerzo [4] es una técnica de aprendizaje automático en la cual un agente interactúa con su entorno y aprende a tomar acciones para maximizar una recompensa. El agente recibe una recompensa o un castigo en función de las acciones que toma, y utiliza esta información para mejorar su comportamiento en el futuro (Ilustración 3). Ilustración 3: Aprendizaje por refuerzo En el aprendizaje por refuerzo, el agente aprende a través de la experimentación y la retroalimentación. El agente se encuentra en un estado y toma una acción, lo que resulta en un nuevo estado y una recompensa. El agente utiliza esta información para actualizar sus conocimientos sobre cómo debe actuar en el futuro. La política es el conjunto de reglas que el agente sigue para tomar acciones. El objetivo del aprendizaje por refuerzo es encontrar la política óptima que maximiza la recompensa a largo plazo. Una política óptima es aquella que toma las acciones que maximizan la esperanza de la recompensa futura. Existen varios algoritmos de aprendizaje por refuerzo, como el algoritmo Q-learning, SARSA, y el algoritmo de política gradiente. El algoritmo Q-learning es uno de los más utilizados, y se basa en la idea de aprender una función de valor Q, que es la esperanza de la recompensa futura si el agente toma una acción en un estado dado. El algoritmo Q-learning actualiza la función Q utilizando la ecuación de Bellman, que es una ecuación recursiva que describe cómo la función Q debe actualizarse en función de la recompensa y la función Q de los estados futuros. 10 El algoritmo SARSA es similar al algoritmo Q-learning, pero utiliza la función Q para tomar acciones en lugar de la política óptima. El algoritmo de política gradiente es otro algoritmo de aprendizaje por refuerzo utilizado para encontrar políticas óptimas. Este algoritmo utiliza gradientes para actualizar la política, y se basa en la idea de que la política óptima se encuentra en la dirección del gradiente de la esperanza de la recompensa. 5.2.4. Aprendizaje profundo El aprendizaje profundo [5] es una técnica de aprendizaje automático que utiliza redes neuronales de varias capas para aprender representaciones de los datos. Una red neuronal es un modelo matemático inspirado en el cerebro humano que se compone de capas de nodos o neuronas interconectadas. Cada neurona recibe una entrada y produce una salida mediante una función de activación. Las redes neuronales profundas se componen de varias capas de neuronas (Error! Reference source not found.), y se utilizan para aprender representaciones de los datos a medida que se procesan a través de las capas. Cada capa de una red neuronal profunda aprende una representación más abstracta de los datos, y las representaciones aprendidas se utilizan para realizar tareas como la clasificación, la generación de imágenes y el procesamiento del lenguaje natural. Las redes neuronales profundas se componen de varios tipos de capas, como las capas de entrada, las capas ocultas y las capas de salida. La capa de entrada recibe los datos de entrada y los alimenta a través de la red neuronal. Cada capa oculta aprende una representación más abstracta de los datos a medida que se procesan a través de ella. La capa de salida produce la salida final de la red neuronal. En la Ilustración 4, se puede observar la representación de una red neuronal. Ilustración 4: Red neuronal Existen varios tipos de redes neuronales profundas, cada una con sus propias características y aplicaciones. Algunos de los más comunes incluyen: • Redes neuronales feedforward: son las redes neuronales más simples y utilizadas. Son aquellas en las que las conexiones entre las neuronas solo van de una capa hacia la siguiente, sin retroalimentación. 11 • Redes neuronales recurrentes: son aquellas en las que las conexiones entre las neuronas van de una capa hacia la siguiente y también de una capa hacia una capa anterior. Esto permite que las redes neuronales recurrentes procesen secuencias de datos. • Redes neuronales convolucionales: son un tipo especial de redes neuronales feedforward que se utilizan para procesar imágenes. Estas redes neuronales aprenden patrones en las imágenes mediante el uso de filtros y capas de pooling. • Redes neuronales autoencoder: son un tipo de red neuronal feedforward que se utilizan para aprender una representación comprimida de los datos. Estas redes neuronales se componen de dos partes: un codificador que comprime los datos y un decodificador que los reconstruye. 5.3. Análisis de entornos de desarrollo y lenguajes de programación para el ML Los entornos de desarrollo son software que proporcionan herramientas y funcionalidades para facilitar la escritura, prueba y depuración de código. Estos entornos de desarrollo son esenciales para los desarrolladores de ML, ya que permiten aumentar la eficiencia y productividad en el desarrollo de aplicaciones. Asimismo, los lenguajes de programación son la base fundamental para el desarrollo de aplicaciones de ML. Existen varios lenguajes de programación populares para ML, como Python, R, Java, entre otros. Cada uno de estos lenguajes de programación tiene sus propias características y ventajas, lo que los hace más adecuados para diferentes tareas y aplicaciones. En este apartado, se profundizará en cada uno de estos aspectos para entender mejor las características y ventajas de las diferentes herramientas y tecnologías disponibles para el desarrollo de aplicaciones de ML. 5.3.1. Entornos de desarrollo En la actualidad, existen varios entornos de desarrollo que se utilizan comúnmente en el desarrollo de proyectos de ML. Estos entornos ofrecen una variedad de características y herramientas diseñadas específicamente para ayudar a trabajar con bibliotecas y marcos de ML. A continuación, se presenta un análisis de los entornos de desarrollo más utilizados para el ML. 5.3.1.1. Jupyter Notebooks Jupyter [6] es una plataforma de código abierto que permite trabajar con código en una amplia gama de lenguajes de programación, incluyendo Python, R, Julia, y otros. La plataforma se utiliza comúnmente en proyectos de ML, ya que ofrece una interfaz de usuario fácil de usar para trabajar con modelos de ML, y cuenta con una amplia gama de herramientas y características para construir modelos de alta calidad. Una de las características más destacadas de Jupyter es su capacidad para trabajar con notebooks interactivos. Estos notebooks permiten escribir y ejecutar código en tiempo real, lo que permite explorar datos, experimentar con diferentes modelos de ML, y visualizar los 12 resultados de sus análisis. Los notebooks también permiten documentar el trabajo en línea, lo que hace que sea más fácil compartir y colaborar en proyectos de ML. Otra característica útil de Jupyter es su capacidad para integrarse con una amplia gama de bibliotecas y frameworks de ML. Por ejemplo, la plataforma es compatible con TensorFlow, PyTorch, Scikit-learn, Keras, y muchos otros. Esto significa se puede trabajar con una variedad de herramientas y frameworks de ML dentro de un entorno coherente y fácil de usar. Jupyter también cuenta con una amplia gama de herramientas y funciones para la exploración y visualización de datos. Cuenta con herramientas integradas de visualización de datos, que permiten crear gráficos y visualizaciones para ayudar a entender mejor los patrones y tendencias en los datos. Jupyter también es compatible con una amplia gama de bibliotecas de análisis de datos, lo que posibilita realizar modelos con datos de una variedad de fuentes. En términos de colaboración, Jupyter es una plataforma ideal para proyectos de ML. Los notebooks pueden ser compartidos y colaborados en tiempo real, lo que hace que sea fácil trabajar con otros desarrolladores y compartir el trabajo con colegas y colaboradores. Además, los notebooks son compatibles con Git y otros sistemas de control de versiones, que facilita la colaboración en proyectos de código abierto y ayuda a asegurar que los cambios en el código sean rastreados y documentados adecuadamente. 5.3.1.2. Google Colab Google Colab [7], abreviación de Google Colaboratory, es una plataforma de código abierto basada en la nube que permite a los usuarios escribir y ejecutar código en Python. Colab se ejecuta en el entorno de Google Drive y proporciona un entorno de desarrollo interactivo similar a Jupyter Notebook. Una de las ventajas clave de Google Colab es que se ejecuta completamente en la nube, lo que significa que no requiere una configuración local. Los usuarios pueden acceder a Colab a través de un navegador web, lo que les permite trabajar en proyectos de ML sin necesidad de instalar software adicional en su ordenador. Esto hace que Colab sea especialmente conveniente para aquellos que no tienen acceso a recursos de hardware potentes o que desean colaborar y compartir su trabajo fácilmente. Google Colab ofrece muchas características similares a Jupyter Notebook. Los usuarios pueden crear y ejecutar celdas de código en tiempo real, lo que facilita la experimentación y la iteración rápida. Colab también es compatible con varios lenguajes de programación, pero se centra principalmente en Python. Una de las características más destacadas de Google Colab es su integración con Google Drive y otras herramientas de Google. Esto permite a los usuarios importar y exportar datos directamente desde y hacia su Google Drive, lo que facilita el acceso a conjuntos de datos y archivos de proyecto. Además, Colab ofrece una amplia gama de bibliotecas y frameworks populares de ML preinstalados, como TensorFlow, Keras y PyTorch, lo que facilita comenzar a trabajar en proyectos de ML sin tener que preocuparse por la instalación y configuración de las bibliotecas. 13 Al igual que Jupyter, Google Colab ofrece herramientas y funciones de visualización de datos para explorar y visualizar los resultados de los análisis de datos. Los usuarios pueden crear gráficos y visualizaciones interactivas directamente en las celdas de código, lo que facilita la comprensión y la presentación de los resultados. En términos de colaboración, Google Colab también es una plataforma ideal. Los usuarios pueden compartir sus notebooks de Colab con otros usuarios, permitiendo la colaboración en tiempo real y la revisión conjunta del código y los resultados. Además, Colab es compatible con GitHub, lo que facilita la integración con sistemas de control de versiones y permite a los usuarios realizar un seguimiento de los cambios y colaborar en proyectos de forma efectiva. 5.3.1.3. DataSpell JetBrains DataSpell [8] es un entorno de desarrollo integrado (IDE) diseñado para facilitar el trabajo en proyectos de ML. Está específicamente diseñado para trabajar con lenguajes de programación populares para ML, como Python, y viene equipado con una amplia gama de herramientas y características útiles para la construcción de modelos de ML efectivos. En términos generales, DataSpell ofrece una interfaz de usuario intuitiva y fácil de usar que permite trabajar de manera más eficiente. Asimismo, la plataforma viene equipada con una serie de herramientas y funciones para automatizar muchas de las tareas repetitivas asociadas con el desarrollo de modelos de ML. Una de las características más destacadas de DataSpell es su integración con los frameworks de ML más populares, incluyendo TensorFlow, PyTorch, Scikit-learn y MXNet. Esto significa que se pueden realizar proyectos que utilizan estos frameworks de manera más eficiente, lo que puede ayudar a reducir el tiempo de desarrollo y acelerar el proceso de iteración del modelo. Otra característica útil de DataSpell es su capacidad para ejecutar modelos de ML en la plataforma de nube de JetBrains. Esto implica que se pueden ejecutar modelos en un entorno de nube seguro y escalable sin tener que preocuparse por configurar su propia infraestructura de nube. Esto puede ser especialmente útil para proyectos que requieren recursos de computación escalables, como el entrenamiento de modelos de gran tamaño. Por último, DataSpell también viene con una serie de herramientas de visualización y análisis de datos integradas para la exploración y visualización de datos. Esto puede ayudar a identificar patrones y tendencias en los datos, lo que a su vez puede mejorar la calidad del modelo de ML resultante. 5.3.1.4. PyCharm PyCharm [9] es un entorno de desarrollo integrado (IDE) desarrollado por JetBrains que está diseñado para trabajar con proyectos de Python. Aunque PyCharm se usa comúnmente para proyectos de desarrollo de software, también es una opción popular para proyectos de ML debido a su conjunto de herramientas y características diseñadas específicamente para ese propósito. 14 PyCharm tiene capacidad para integrarse con una amplia gama de bibliotecas de ML. La plataforma es compatible con TensorFlow, PyTorch, Scikit-learn, Keras y otras bibliotecas de ML, así pues, se puede trabajar con una variedad de herramientas y frameworks de ML dentro de un entorno coherente y fácil de usar. Además, PyCharm cuenta con una amplia gama de herramientas y funciones para el desarrollo de modelos de ML. Por ejemplo, la plataforma cuenta con herramientas de depuración y análisis de datos integradas, por lo que facilita la identificación de errores en el código y la detección de patrones en los datos. Otra característica útil de PyCharm es su capacidad para trabajar con notebooks de Jupyter. Se pueden crear y ejecutar notebooks de Jupyter dentro de PyCharm, en consecuencia, se pueden explorar datos, experimentar con diferentes modelos de ML y documentar su trabajo en línea. En términos de colaboración, PyCharm es una buena plataforma para proyectos de ML. La plataforma es compatible con Git y otros sistemas de control de versiones, lo que facilita la colaboración en proyectos de código abierto y ayuda a asegurar que los cambios en el código sean rastreados y documentados adecuadamente. Además, PyCharm tiene la posibilidad de trabajar en equipos de manera efectiva mediante la asignación de tareas y el seguimiento del progreso del proyecto. 5.3.1. Lenguajes de programación Además de la necesidad de utilizar un entorno de desarrollo óptimo para realizar proyectos de ML, es indispensable hacer uso de un lenguaje de programación que sea eficiente y adecuado para los mismos. Existen varios lenguajes de programación que se utilizan comúnmente en el desarrollo de proyectos de ML. A continuación, se presenta un análisis de los lenguajes de programación más utilizados. 5.3.1.5. Python Python [10] es un lenguaje de programación de alto nivel que se ha convertido en uno de los lenguajes más populares para el desarrollo de aplicaciones de ML. A continuación, se describen sus características principales: • Lenguaje de programación de alto nivel: fácil de leer y escribir, lo que acelera el proceso de desarrollo. • Lenguaje de código abierto: acceso al código fuente y modificaciones posibles. • Facilidad de uso: fácil de aprender y utilizar, ideal para los que se están iniciando en el desarrollo de aplicaciones. • Portabilidad: multiplataforma y se puede ejecutar en una amplia variedad de sistemas operativos y arquitecturas. • Multiparadigma: admite varios paradigmas de programación, incluidos programación orientada a objetos, programación funcional y programación imperativa, permitiendo elegir el paradigma que mejor se adapte a sus necesidades. • Librerías de ML: gran cantidad de librerías de ML disponibles en Python, lo que facilita el desarrollo de modelos y reduce el tiempo de desarrollo. 15 • Flexibilidad: Python es un lenguaje flexible y multiparadigma, lo que permite elegir el paradigma que mejor se adapte a las necesidades. • Comunidad activa: Python tiene una comunidad de desarrolladores muy activa, por tanto, significa que hay una gran cantidad de recursos disponibles en línea y una gran cantidad de personas dispuestas a ayudar. • Facilidad de integración: Python se integra fácilmente con otras tecnologías y herramientas, por lo que facilita la integración de aplicaciones de ML en otros sistemas. 5.3.1.6. R R [11] es un lenguaje de programación y un entorno de software de código abierto utilizado en análisis estadísticos y ML. R es un lenguaje que se enfoca en el análisis de datos y, por lo tanto, tiene una gran cantidad de librerías específicas para el análisis de datos y la creación de modelos de ML. A continuación, se describen sus características principales: • Lenguaje de programación de alto nivel: R es un lenguaje de programación de alto nivel que es fácil de leer y escribir. Esto hace que el proceso de desarrollo sea más rápido y eficiente. • Lenguaje de código abierto: R es un lenguaje de código abierto, lo que significa que se puede acceder al código fuente y modificarlo según sea necesario. • Facilidad de uso: R es un lenguaje fácil de aprender y utilizar, lo que lo hace ideal para aquellos que se están iniciando en el desarrollo de aplicaciones. • Las librerías de ML: R tiene una gran cantidad de librerías de ML, lo que facilita el desarrollo de modelos y reduce el tiempo de desarrollo. • Amplias capacidades estadísticas: R es un lenguaje especialmente diseñado para análisis estadístico, lo que significa que tiene una amplia gama de capacidades estadísticas incorporadas. • Flexibilidad: R es un lenguaje flexible y multiparadigma, lo que permite elegir el paradigma que mejor se adapte a sus necesidades. • Visualización de datos: R tiene capacidades incorporadas de visualización de datos, lo que facilita la exploración y análisis de grandes conjuntos de datos. • Comunidad activa: R tiene una comunidad de desarrolladores muy activa, lo que significa que hay una gran cantidad de recursos disponibles en línea y una gran cantidad de personas dispuestas a ayudar. 5.3.1.7. Java Java [12] es un lenguaje de programación orientado a objetos de alto nivel utilizado en una amplia gama de aplicaciones de software. Java también se ha utilizado cada vez más en el campo del ML. A continuación, se describen sus características principales: • Orientación a objetos: Java es un lenguaje orientado a objetos, lo que significa que las aplicaciones de ML pueden ser programadas en una estructura de clases y objetos, que facilita la comprensión y el mantenimiento del código. • Plataforma independiente: Java se ejecuta en una máquina virtual, es decir, que el código Java puede ser ejecutado en cualquier plataforma que tenga una máquina virtual de Java instalada. • Seguridad: Java tiene un modelo de seguridad sólido que lo hace interesante para el desarrollo de aplicaciones que manejan datos sensibles. 16 • Escalabilidad: Java es un lenguaje escalable y se puede utilizar para desarrollar aplicaciones de cualquier tamaño. • Lenguaje de programación sólido: Java es un lenguaje de programación sólido y confiable que se ha utilizado en una amplia gama de aplicaciones de software. • Librerías y marcos de trabajo de ML: Java tiene una amplia gama de librerías y marcos de trabajo de ML, lo que permite el desarrollo de modelos de ML sofisticados. • Rendimiento: Java es conocido por tener un buen rendimiento y puede manejar grandes conjuntos de datos y modelos de ML complejos. • Facilidad de integración: Java se integra fácilmente con otras tecnologías y herramientas, lo que facilita la integración de aplicaciones de ML en otros sistemas. • Comunidad activa: Java tiene una comunidad de desarrolladores muy activa, lo que significa que hay una gran cantidad de recursos disponibles en línea y una gran cantidad de personas dispuestas a ayudar. 5.3.1.8. C++ C++ [13] es un lenguaje de programación de alto nivel utilizado en una amplia variedad de aplicaciones de software, incluyendo el campo del ML. A continuación, se describen sus características principales: • Velocidad y eficiencia: C++ es un lenguaje de programación conocido por su alta velocidad y eficiencia. Esto lo hace ideal para aplicaciones de ML que involucran grandes conjuntos de datos y modelos de ML complejos. • Orientación a objetos: C++ es un lenguaje de programación orientado a objetos, lo que significa que las aplicaciones de ML pueden ser programadas en una estructura de clases y objetos, lo que facilita la comprensión y el mantenimiento del código. • Portabilidad: C++ es un lenguaje de programación altamente portátil y puede ser utilizado en una variedad de plataformas y sistemas operativos. • Rendimiento: C++ es conocido por tener un excelente rendimiento y puede manejar grandes conjuntos de datos y modelos de ML complejos. • Librerías y marcos de trabajo de ML: C++ tiene una amplia gama de librerías y marcos de trabajo de ML, lo que permite el desarrollo de modelos de ML sofisticados. • Acceso a hardware de bajo nivel: C++ permite un acceso directo al hardware de la computadora, lo que lo hace ideal para aplicaciones de ML que requieren el uso de hardware de bajo nivel, como aceleradores de hardware de GPU. • Flexibilidad: C++ es un lenguaje de programación altamente flexible que puede ser utilizado para una variedad de aplicaciones de ML, incluyendo el desarrollo de sistemas de aprendizaje profundo, redes neuronales y algoritmos de clasificación. 5.4. Análisis de parámetros QoS en entornos WiFi La calidad de servicio (QoS) es un conjunto de parámetros que determinan el rendimiento y la calidad de las redes. Los parámetros de QoS son especialmente importantes en redes WiFi, donde se enfrentan a muchos desafíos en términos de capacidad, alcance y seguridad. Este análisis se centrará en los principales parámetros de QoS en redes WiFi y su impacto en el rendimiento de la red. 17 5.4.1. Ancho de banda El ancho de banda es uno de los parámetros más importantes en la QoS de los entornos WiFi. Según la Recomendación UIT-T Y.1540 el ancho de banda se define como la cantidad de datos que se pueden transmitir en una unidad de tiempo, medido en bits por segundo (bps), y es esencial para la capacidad de una red para soportar aplicaciones de alta velocidad como el streaming de video y audio, la descarga de archivos grandes, y la navegación web rápida. El ancho de banda disponible en una red WiFi depende de varios factores, incluyendo la tecnología utilizada (por ejemplo, WiFi 4, 5 o 6), la frecuencia de operación (2,4 GHz o 5 GHz), el número de antenas, la calidad de la señal, el número de usuarios conectados, y la cantidad de datos que se están transmitiendo en ese momento. A continuación, se detallan algunos aspectos importantes que condicionan el ancho de banda en la QoS en entornos WiFi: • Tecnología WiFi: El ancho de banda en una red WiFi está limitado por la tecnología utilizada. Por ejemplo, WiFi 4 (802.11n) ofrece una velocidad máxima de hasta 600 Mbps, mientras que WiFi 5 (802.11ac) puede alcanzar velocidades de hasta 1,3 Gbps y WiFi 6 (802.11ax) puede llegar a velocidades de hasta 9,6 Gbps. Por lo tanto, la elección de la tecnología WiFi es crucial para determinar el ancho de banda disponible y la QoS que se puede esperar de una red. • Frecuencia de operación: La frecuencia de operación también influye en el ancho de banda disponible. El espectro de 2,4 GHz tiene menos ancho de banda disponible en comparación con el espectro de 5 GHz. Por lo tanto, las redes que operan en el espectro de 5 GHz pueden proporcionar una mayor capacidad y, por tanto, una mejor QoS. • Número de antenas: La cantidad de antenas en un punto de acceso WiFi también puede afectar el ancho de banda disponible. Cuantas más antenas tenga el punto de acceso, más capacidad tendrá para transmitir y recibir datos. Por lo tanto, un punto de acceso con múltiples antenas puede proporcionar una mayor QoS que un punto de acceso con una sola antena. • Calidad de la señal: La calidad de la señal es un factor importante en la determinación del ancho de banda disponible. Una señal débil o interferencias pueden disminuir la calidad de la señal y limitar la cantidad de datos que se pueden transmitir. Por lo tanto, es importante que la señal WiFi sea lo más fuerte y clara posible para obtener el máximo ancho de banda disponible. • Número de usuarios conectados: El número de usuarios conectados a una red WiFi puede afectar la QoS y el ancho de banda disponible. Cuantos más usuarios se conecten a la red, mayor será la carga de la red y menor será el ancho de banda disponible para cada usuario. Por lo tanto, es importante limitar el número de usuarios conectados y distribuirlos en diferentes canales y frecuencias para mejorar la QoS. • Cantidad de datos que se están transmitiendo: La cantidad de datos que se están transmitiendo en la red también afecta el ancho de banda disponible. 18 5.4.2. Throughput El throughput un parámetro muy importante en la QoS de los entornos WiFi, y se define como la cantidad de datos que se pueden transmitir con éxito en una unidad de tiempo determinada. El throughput se mide típicamente en bits por segundo (bps). Según la Recomendación ITU-T Y.1540, el throughput es uno de los parámetros clave para evaluar la calidad de una red, se define como la cantidad de datos que se pueden transmitir en una unidad de tiempo, medido en bits por segundo (bps). Además, se establece que el throughput se ve afectado por varios factores, como la capacidad de la red, la congestión de la red y los requisitos de ancho de banda de las aplicaciones. A continuación, se detallan algunos aspectos importantes que condicionan el throughput en la QoS en entornos WiFi: • Tecnología WiFi: Al igual que con el ancho de banda, la tecnología WiFi utilizada es un factor clave en la determinación del throughput disponible en una red. Las redes WiFi más nuevas, como WiFi 6 (802.11ax), ofrecen velocidades más altas y mayor eficiencia espectral, lo que puede conducir a un mayor throughput. • Frecuencia de operación: La frecuencia de operación también puede influir en el throughput disponible. En general, las redes WiFi que operan en el espectro de 5 GHz tienen un mayor throughput que las que operan en el espectro de 2,4 GHz. Esto se debe a que el espectro de 5 GHz tiene más canales disponibles y es menos susceptible a interferencias. • Número de antenas: Al igual que con el ancho de banda, la cantidad de antenas en un punto de acceso WiFi también puede afectar el throughput disponible. Los puntos de acceso con múltiples antenas pueden proporcionar un mayor throughput que los puntos de acceso con una sola antena, ya que tienen más capacidad para transmitir y recibir datos. • Calidad de la señal: La calidad de la señal es un factor importante en la determinación del throughput disponible. Una señal débil o interferencias pueden disminuir el throughput y limitar la cantidad de datos que se pueden transmitir con éxito. Por lo tanto, es importante que la señal WiFi sea lo más fuerte y clara posible para obtener el máximo throughput disponible. • Número de usuarios conectados: El número de usuarios conectados a una red WiFi también puede afectar el throughput disponible. Cuantos más usuarios se conecten a la red, mayor será la carga de la red y menor será el throughput disponible para cada usuario. Por lo tanto, es importante limitar el número de usuarios conectados y distribuirlos en diferentes canales y frecuencias para mejorar la QoS. • Cantidad de datos que se están transmitiendo: La cantidad de datos que se están transmitiendo en la red también afecta el throughput disponible. Cuanto más alto sea el tráfico de red, menor será el throughput disponible para cada usuario. 5.4.3. Latencia La latencia es un parámetro clave en la QoS de los entornos WiFi. Según la recomendación ITU-T Y.1541 la latencia es el tiempo de retraso que transcurre desde que se envía un paquete de datos desde un origen hasta que se recibe en su destino. La latencia tiene 25 Es importante tener en cuenta que estos factores humanos pueden interactuar entre sí para influir en la percepción de los usuarios. Por lo tanto, es importante tener en cuenta estas variables al momento de diseñar encuestas para evaluar la QoE en redes WiFi. 5.5.2. Factores de influencia del sistema El factor de influencia del sistema es una de las categorías más estudiadas en relación con la QoE en redes WiFi. Este factor hace referencia a todas las características técnicas del sistema que influyen en la calidad percibida por el usuario, es decir, tiene una estrecha relación con la QoS de la red, ya que, la QoS influye directamente en la experiencia del usuario. A continuación, se analizarán los principales subfactores que influyen al sistema: • Relacionados con el contenido: los aspectos técnicos relacionados con el contenido transmitido son fundamentales para garantizar una buena QoE en redes wifi. Entre ellos se incluyen la codificación de los datos, la resolución de la imagen o el sonido, la frecuencia de muestreo y la tasa de bits. Si estos factores no se ajustan adecuadamente, se pueden producir fallos en la transmisión, retrasos, cortes en la señal, etc. • Relacionados con la red: la calidad de la red wifi es otro aspecto técnico clave para garantizar una buena QoE. En este sentido, la velocidad de conexión, el ancho de banda disponible, el retardo de la señal y la fluctuación de fase son algunos de los aspectos técnicos que influyen en la calidad percibida por el usuario. • Dispositivos: los dispositivos utilizados para conectarse a la red wifi también tienen un impacto en la QoE. La resolución de la pantalla, el tamaño y la calidad de los altavoces o auriculares son algunos de los aspectos que influyen en la calidad percibida por el usuario. Es relevante destacar que estos factores técnicos están estrechamente interrelacionados entre sí y, por lo tanto, cualquier problema técnico en uno de ellos puede afectar negativamente a los demás. 5.5.3. Factor de influencia del contexto El factor de influencia del contexto en la QoE en redes wifi se refiere a cómo el entorno en el que se utiliza el servicio o sistema de WiFi puede afectar la calidad de la experiencia del usuario. Este factor se divide en varios subfactores: • Contexto físico: el contexto físico se refiere a la ubicación y al espacio en el que se utiliza el servicio o sistema de wifi. Por ejemplo, si un usuario está en un área con una mala señal wifi debido a una mala cobertura, esto afectará su QoE. Además, la presencia de interferencias, ruido, obstáculos o una alta concentración de dispositivos que utilizan wifi también puede influir en la QoE del usuario. • Contexto temporal: el contexto temporal se refiere a la hora del día, la frecuencia de uso y otros factores temporales que pueden influir en la QoE del usuario. Por ejemplo, si hay un mayor número de usuarios utilizando la red WiFi en ciertos momentos del día, la QoE puede disminuir debido a una sobrecarga de la red. • Contexto social: el contexto social se refiere a las relaciones interpersonales que pueden influir en la QoE del usuario. Por ejemplo, si hay una gran cantidad de usuarios 26 que utilizan la misma red wifi en un espacio compartido, es posible que algunos usuarios experimenten una QoE deficiente debido a la competencia por el ancho de banda. • Contexto económico: el contexto económico se refiere al poder adquisitivo de los usuarios y a cómo esto puede influir en la QoE. Por ejemplo, un usuario con una conexión de internet de alta velocidad puede tener una mejor QoE en comparación con un usuario que utiliza una conexión de baja velocidad. • Contexto de tarea: el contexto de la tarea se refiere al tipo de tarea que se está realizando en el sistema o servicio de wifi y cómo esto puede influir en la QoE del usuario. Por ejemplo, si un usuario está realizando una tarea que requiere una conexión de alta velocidad, como descargar o cargar archivos grandes, es posible que experimente una QoE deficiente si la velocidad de la red es baja. • Contexto técnico: El contexto técnico se refiere a la relación entre sistemas en la red wifi, como el enrutador, los dispositivos de acceso, la infraestructura de red y los protocolos utilizados. Estos factores pueden influir en la QoE del usuario, por ejemplo, una red WiFi con un router de baja calidad o una infraestructura de red obsoleta puede tener una mala QoS, lo que puede afectar negativamente la experiencia del usuario. 5.6. Análisis de metodologías de valoración Para medir la QoE de los usuarios, se pueden utilizar diversas metodologías de valoración. Estas metodologías pueden ser objetivas o subjetivas. Los métodos objetivos se basan en medidas técnicas y estadísticas para evaluar la calidad de la red. Los métodos objetivos son especialmente útiles para identificar problemas en la red y permiten la monitorización constante de la calidad de la red. Sin embargo, Los métodos subjetivos se basan en la percepción del usuario y su experiencia de uso. Los métodos subjetivos se utilizan generalmente para evaluar la QoE percibida por el usuario final. Este proyecto se enfocará exclusivamente en analizar los métodos subjetivos para medir la QoE. Esto se debe a que para este proyecto es fundamental obtener información directamente de los usuarios, comprender su perspectiva y tomar medidas efectivas para mejorar su experiencia en la red. A continuación, se procederá a explicar en detalle las distintas metodologías existentes para la valoración de la QoE de los usuarios mediante métodos subjetivos. La recomendación ITU-T P.800, presenta el Método de la Escala de Opinión Media (MOS) [20]. Es uno de los métodos más utilizados para evaluar la calidad subjetiva de los servicios multimedia, como la voz y el video. Este método se basa en la idea de que la QoE puede ser medida mediante la recopilación de opiniones de los usuarios en una escala subjetiva. La P.800 establece una escala de opinión subjetiva que se utiliza para medir la calidad de los servicios multimedia en función de la percepción de los usuarios. Esta escala es una escala ordinal de 1 a 5, donde 1 es la peor calidad y 5 es la mejor calidad. Cada valor de la escala se asigna a una descripción de calidad, que se utiliza para orientar a los usuarios a la hora de realizar su valoración subjetiva. La escala se divide en cinco categorías: pobre, justa, buena, muy buena y excelente, tal y como se puede ver en la Ilustración 6. 27 MOS Quality 5 Excellent 4 Good 3 Fair 2 Poor 1 Bad Ilustración 6: MOS El método MOS se basa en la idea de que, a pesar de que las opiniones de los usuarios pueden ser subjetivas, existe un cierto grado de consenso en cuanto a lo que se considera una experiencia de calidad. Por lo tanto, el MOS utiliza la opinión media de un grupo de usuarios para determinar la calidad de la experiencia del usuario. El MOS se utiliza ampliamente en la industria de las telecomunicaciones para evaluar la calidad de los servicios multimedia y para comparar diferentes soluciones tecnológicas. La ventaja del MOS es que es una medida fácil de usar y de entender, y que se puede aplicar a diferentes tipos de servicios multimedia. Además, los resultados obtenidos con MOS son fáciles de comparar entre diferentes servicios y soluciones. Sin embargo, el sistema MOS tiene algunas limitaciones. Una de las principales limitaciones es que no tiene en cuenta las características específicas del servicio multimedia evaluado. Además, los resultados del MOS pueden estar sesgados por factores como el tamaño de la muestra, la forma en que se selecciona a los usuarios para la evaluación, y la experiencia previa de los usuarios con el servicio multimedia evaluado. Por otro lado, la recomendación ITU-T P.910, proporciona un enfoque más amplio y completo para evaluar la calidad de la experiencia del usuario de servicios multimedia. Se basa en la identificación de las características clave de la experiencia del usuario y en la recopilación de información a través de métodos cualitativos y cuantitativos, incluyendo entrevistas y encuestas. Dentro de esta recomendación, se encuentran diversos métodos de evaluación subjetiva, entre ellos el método ACR (Absolute Category Rating), ACR-H (ACR with Hidden Reference) y DCR (Degradation Category Rating) y el método de pares. El método ACR [21] es el método más utilizado en la evaluación subjetiva de la calidad. Este método implica que los usuarios califiquen la calidad de un servicio en una escala de categorías absolutas, como excelente, bueno, regular, pobre o malo. Los usuarios deben elegir una sola categoría que mejor describa la calidad percibida del servicio. En este método, se presentan secuencias a los espectadores uno a uno y se les pide que califiquen la calidad de cada secuencia en una escala de categoría. Después de cada presentación, los espectadores evalúan la calidad de la secuencia mostrada en función de la escala de categoría. La presentación del estímulo en el método ACR puede ser constante o variable. Una mejora en el método ACR es el método ACR con referencia oculta (ACR-HR) [21]. En este método, se incluye una versión de referencia de cada secuencia de prueba que se 28 muestra como cualquier otro estímulo de prueba, pero de forma oculta. Durante el análisis de los datos, se calcula una puntuación diferencial de opinión media (DMOS) de calidad entre cada secuencia de prueba y su correspondiente (oculta) referencia. Este procedimiento se conoce como "referencia oculta". El cálculo de la DMOS tiene en cuenta la calidad de la secuencia de prueba en relación con la calidad de la referencia oculta. El método ACR-HR tiene la ventaja de eliminar el sesgo del espectador hacia la referencia al calcular la DMOS, lo que ayuda a obtener una medida más precisa de la calidad de la secuencia de prueba. El método ACR-HR es útil en experimentos a gran escala, siempre y cuando todas las referencias sean de al menos "buena" calidad. Por otro lado, el método de Categoría de Degradación (DCR) [21] es una técnica subjetiva utilizada para evaluar la calidad de la imagen en sistemas de video. Es un método que implica la presentación de dos secuencias de video, siendo la primera una secuencia de referencia y la segunda una secuencia procesada por el sistema bajo evaluación. El evaluador debe determinar el grado de degradación de la segunda secuencia en relación con la primera. El método DCR utiliza una escala de cinco niveles para calificar el grado de degradación de la segunda secuencia: 5 imperceptible, 4 perceptible pero no molesto, 3 ligeramente molesto, 2 molesto, 1 muy molesto. El evaluador debe calificar cada par de secuencias presentadas durante el experimento en esta escala. La ventaja del método DCR es que permite evaluar la fidelidad de la transmisión con respecto a la señal de origen. Por lo tanto, es adecuado para evaluar la calidad de imagen de sistemas de alta calidad en videoconferencia. El método DCR puede presentar algunas limitaciones, por ejemplo, puede ser difícil de aplicar en sistemas que tienen múltiples fuentes de degradación simultáneas o que presentan degradaciones no uniformes. Además, el método DCR no tiene la misma discriminación que otros métodos, como el ACR-HR, ya que solo se evalúa la degradación en relación con una referencia y no se realiza una evaluación comparativa directa. Por último, el método de comparación por pares (PC) implica que las secuencias de prueba se presentan en pares, consistiendo en que la misma secuencia se presente primero a través de un sistema de prueba y luego a través de otro sistema. Los sistemas de prueba (A, B, C, etc.) se combinan generalmente en todas las posibles combinaciones n(n - 1) como AB, BA, CA, etc. Por lo tanto, todos los pares de secuencias se deben mostrar en ambos los órdenes posibles (por ejemplo, AB, BA). Este método puede ser más difícil de implementar en comparación con otros métodos de evaluación, ya que requiere una comparación directa de pares de secuencias y puede requerir una mayor cantidad de tiempo de evaluación por parte de los usuarios. Es importante saber cuándo implementar cada uno de estos métodos para obtener el resultado más preciso posible. Esta recomendación comenta que el método DCR es recomendado cuando se desea evaluar la fidelidad de la transmisión con respecto a la señal de origen, especialmente en sistemas de alta calidad. Esta metodología ha sido ampliamente utilizada en la evaluación de calidad de imágenes de televisión en el contexto de la 29 videotelefonia y videoconferencia. El uso de la escala DCR es particularmente valioso cuando se requiere discriminar entre la percepción de una degradación imperceptible o perceptible. Por otro lado, el método ACR es fácil y rápido de implementar, y la presentación de estímulos es similar a la de uso común en los sistemas multimedia. Esto lo hace adecuado para realizar pruebas de calificación. ACR-HR tiene todas las ventajas de ACR en cuanto a la presentación y velocidad, y además tiene la capacidad de eliminar el impacto perceptual del video de referencia en las puntuaciones subjetivas. Esto reduce el impacto del sesgo del escenario (por ejemplo, los espectadores que les gustan o no les gustan un video de referencia), la calidad del video de referencia (por ejemplo, pequeñas diferencias en la calidad de la cámara) y el monitor (por ejemplo, calidad profesional versus grado de consumidor) en las puntuaciones finales. ACR-HR es adecuado para realizar experimentos con un gran número de observadores, siempre y cuando todos los videos de referencia sean de al menos "buena" calidad. Sin embargo, ACR-HR puede ser insensible a algunas degradaciones que son fácilmente detectadas por métodos diferenciales directos, como DCR. Por último, el método PC se destaca por su alta capacidad discriminativa, lo que es particularmente valioso cuando varios elementos de prueba son de calidad similar. Sin embargo, este método tiende a ser más largo cuando se desean evaluar un gran número de elementos de prueba. 30 6. ANÁLISIS DE ALTERNATIVAS Después de haber realizado una exhaustiva revisión de las tecnologías existentes en el estado del arte, es importante llevar a cabo un análisis de alternativas para definir la selección de la solución en cuanto a: la identificación del parámetro QoS, la identificación del algoritmo de ML, los factores de influencia relevantes a tener en cuenta, la metodología de valoración a realizar y el entorno de desarrollo y el lenguaje de programación para el desarrollo del modelo de ML. Para ello, teniendo en cuenta el contexto del proyecto (apartado 2), se puede determinar cuáles de las opciones revisadas en el estado del arte son comparables para su realización. Después, se podrá llevar a cabo una evaluación rigurosa de las diferentes alternativas y seleccionar aquellas que mejor se adapten a las necesidades y objetivos del proyecto. En este sentido, se establecen una serie de criterios de selección que se adapten de manera efectiva al objetivo en cuestión. Cada criterio deberá tener un porcentaje asociado en función de su importancia relativa. Para evaluar cada alternativa, se calificará cada criterio del 1 al 5, y se seleccionará la opción u opciones que obtengan la mayor puntuación global en base a los criterios establecidos. 6.1. Identificación del parámetro QoS En la sección 5.4 del estado del arte, se ha llevado a cabo un análisis exhaustivo de los diversos parámetros objetivos que influyen en la calidad de servicio de las redes WiFi. Sin embargo, para este caso de estudio en particular, se ha decidido seleccionar un único parámetro objetivo que se utilizará para entrenar el modelo y establecer una correlación con la QoE. Esta decisión se ha tomado en base a varias razones: • Simplicidad del Modelo: Comenzar con un único parámetro permite simplificar el modelo y facilitar su interpretación. Es más sencillo entender y comunicar los efectos de un único parámetro en la QoE que lidiar con múltiples parámetros y las posibles interacciones entre ellos. • Enfoque en el Parámetro más Importante: Algunos parámetros pueden tener un impacto más significativo en la QoE que otros. El foco en un único parámetro permite centrarse en aquel que se considera más influyente para el caso de estudio. Para lograr esto, hay que realizar un análisis de parámetros objetivos que influyan en la red wifi y que sean óptimas para realizar el modelo de correlación QoS/QoE. En el apartado 5.4, se han analizado diversos parámetros relevantes en relación con la QoS, sin embargo, este análisis se centrará en el throughput y el SNR (relación señal-ruido). La selección de estos parámetros se debe a dos razones: primero, son características que están disponibles en el conjunto de datos existente; segundo, poseen una relevancia indiscutible en el estudio de la QoS. El throughput es esencial porque representa la cantidad de datos que pueden ser transmitidos desde un punto a otro en un periodo de tiempo determinado. Su importancia radica en el hecho de que un mayor throughput a menudo se traduce en una red más rápida y eficaz, lo que contribuye a una mejor QoE. 31 La relación señal-ruido (SNR), por otro lado, es un parámetro que puede ofrecer información valiosa sobre la integridad de la señal de la red. La SNR puede ser particularmente útil para entender cómo los obstáculos físicos, como paredes y mobiliario, o la densidad de usuarios en ciertos espacios, como aulas o auditorios, pueden afectar la calidad de la conexión WiFi. Un SNR bajo puede indicar una señal débil o mucha interferencia, lo que se traduce en una peor experiencia para el usuario. Con el objetivo de elegir el parámetro más relevante para realizar la comparación entre los dos entornos universitarios, se aplicarán varios criterios y en base a ellos, se seleccionará el parámetro que mejor se ajuste a la naturaleza del proyecto. 6.1.1. Throughput Como se ha explicado ya en el apartado 5.4.2, el throughput hace referencia a la cantidad de datos que se pueden transmitir o recibir a través de una red en un determinado período de tiempo. Es una medida de la velocidad de transferencia de datos y se expresa típicamente en bits por segundo (bps) o en unidades más grandes como kilobits por segundo (Kbps). En este caso de estudio, el conjunto de datos con el que se va a trabajar contiene el throughput medio de una sesión de un usuario específico. Por lo tanto, el throughput se presenta como un parámetro importante a ser correlacionado con la experiencia de los usuarios. Esto se debe a que el throughput proporciona una indicación general de la velocidad de la red WiFi, que a su vez influye en la calidad de la red experimentada por los usuarios durante una sesión determinada. Un alto throughput implica una mayor velocidad de transferencia de datos, lo que generalmente se asocia con una mejor calidad de la red WiFi y una experiencia de usuario más satisfactoria. Por otro lado, un bajo throughput indica una velocidad de transferencia de datos más lenta, lo que puede resultar en una menor calidad de la red y una experiencia de usuario menos óptima. Dado que el throughput es una medida directa de la velocidad de la red WiFi, tiene un impacto significativo en la calidad percibida por los usuarios. Por lo tanto, correlacionar el throughput medio de una sesión con la experiencia de los usuarios puede proporcionar información valiosa sobre cómo la velocidad de la red influye en su satisfacción y percepción de la calidad del servicio. 6.1.2. SNR La SNR, como analizado en el apartado 5.4.6, representa la relación entre la potencia de la señal recibida y el nivel de ruido presente en el entorno de la red WiFi. Proporciona información sobre la calidad de la señal transmitida y recibida. La SNR alta indica que la señal recibida es fuerte en comparación con el ruido, lo que se traduce en una mejor calidad de la señal y menos interferencias. Esto conduce a una mayor 32 capacidad de transferencia de datos y una menor probabilidad de errores en la comunicación. En consecuencia, una alta SNR está asociada con una mejor calidad de la red WiFi. Por otro lado, una SNR baja indica que la señal recibida es débil en comparación con el ruido. Esto puede resultar en una calidad de señal deficiente, pérdida de paquetes de datos y una mayor probabilidad de errores de transmisión. Una baja SNR puede afectar negativamente la calidad de la red WiFi y la experiencia del usuario al reducir la velocidad de conexión y generar interrupciones en la comunicación. Al correlacionar la SNR con la experiencia de los usuarios, se obtiene información valiosa sobre cómo la calidad de la señal transmitida y recibida influye en su satisfacción y percepción de la calidad del servicio. 6.1.3. Criterios de selección 1. Importancia teórica (35%): La importancia teórica es un criterio crucial ya que respalda la relación entre el parámetro y la QoE, por lo que se asigna un 25% a este criterio. 2. Disponibilidad de datos (25%): La disponibilidad de datos es un factor clave ya que se necesita contar con un conjunto de datos completo y confiable para realizar la correlación, por tanto, se le asigna un 20%. 3. Significado práctico (25%) El significado práctico considera la utilidad y aplicabilidad de los resultados obtenidos al correlacionar cada parámetro con la QoE. 4. Facilidad de medición (15%): La facilidad de medición se refiere a la facilidad y precisión con la que se puede medir cada parámetro en el entorno universitario. Criterios Throughput SNR Peso (%) Importancia teórica 5 4 35 Disponibilidad de los datos 5 5 25 Significado práctico 5 4 25 Facilidad de medición 4 4 15 TOTAL 4,85 4,25 Tabla 1: Matriz de alternativas de los parámetros QoS Observando la Tabla 1, el throughput ha obtenido una puntuación total más alta. Esto se debe a su importancia teórica, ya que mide directamente la velocidad de transferencia de datos en la red WiFi, lo cual está relacionado con la calidad de servicio. Además, el throughput es más relevante en términos prácticos para representar la QoS, ya que proporciona una indicación clara de la capacidad de la red para entregar datos de manera eficiente. También tiene un significado práctico más directo, ya que una correlación significativa con la QoE indica que una mayor velocidad de transferencia de datos se asocia con una mejor experiencia del usuario. En consecuencia, el throughput se selecciona como el parámetro más adecuado para correlacionar con la QoE en este estudio. Su medición directa de la velocidad de transferencia de datos y su significado práctico en términos de la QoE lo convierten en la mejor opción en comparación con el SNR. 33 6.2. Identificación del algoritmo de ML En este proyecto, se busca desarrollar un modelo de correlación entre la calidad experimentada por los usuarios (QoE) y la calidad de servicio objetiva (QoS) en redes WiFi. Para lograr este objetivo, es necesario aplicar técnicas de ML que permitan analizar grandes cantidades de datos y establecer relaciones complejas entre ellos. En particular, se han considerado algoritmos supervisados de ML ya que se cuenta con un conjunto de datos previamente etiquetados (encuestas que evalúan la satisfacción de los usuarios con el servicio) y se desea entrenar un modelo para que pueda correlacionar la calidad experimentada por los usuarios a partir de cierto indicador objetivo de calidad de servicio (KPI). El KPI seleccionado para este estudio es el throughput, como se ha establecido anteriormente. Al tener datos etiquetados de las encuestas de satisfacción, se utilizan técnicas de ML supervisado para entrenar un modelo capaz de predecir la calidad experimentada por los usuarios a partir del valor del throughput. En este proyecto se ha optado por analizar dos tipos de algoritmos supervisados (concretamente de regresión): la regresión lineal y la regresión logística. La elección de estos dos se debe a varias razones: • Regresión lineal: Este algoritmo es uno de los más básicos y fundamentales en el aprendizaje supervisado. Se ha elegido por su simplicidad y eficiencia, lo que lo convierte en un buen punto de partida para entender y modelar la correlación entre los datos de entrada (las medidas de QoS) y los de salida (la QoE percibida por los usuarios). • Regresión logística: Aunque la regresión logística se utiliza comúnmente para problemas de clasificación binaria, también puede ser aplicada a problemas de regresión multiclase al considerar la QoE como un valor discreto dentro de un conjunto de clases (por ejemplo, mala, aceptable, buena). Se ha escogido la regresión logística por su capacidad para manejar este tipo de problemas y porque puede proporcionar probabilidades asociadas a las predicciones, lo que puede ser útil para entender la confianza del modelo en sus predicciones. Además, se explorarán los tres tipos de algoritmos principales supervisados dentro de las redes neuronales: Redes neuronales feedforward Redes Neuronales Convolucionales y Redes Neuronales Recurrentes. Tras realizar un análisis detallado de los diferentes algoritmos, se seleccionarán aquellos que resulten más interesantes y adecuados para el proyecto en cuestión, en base a diversos criterios establecidos. Esto implicar elegir el algoritmo de regresión óptimo entre la regresión lineal y la regresión logística, así como el tipo de red neuronal (feedforward, convolucional o recurrente) que mejor se ajuste a los datos y objetivos del estudio. Se desarrollarán dos modelos distintos: uno basado en el algoritmo de regresión seleccionado, que proporciona una aproximación más sencilla y fácilmente interpretable de la relación entre el throughput y la experiencia de usuario; y otro basado en una red neuronal seleccionada, que permite una modelización más profunda y la captura de relaciones más complejas y no lineales. 34 6.2.1. Regresión lineal La regresión lineal [22] es un modelo de regresión en el que se establece una relación lineal entre una única variable independiente (predictor) y una variable dependiente (respuesta). Se utiliza cuando queremos predecir o evaluar la influencia de una sola variable en la variable de respuesta. La forma matemática de un modelo de regresión lineal simple se puede expresar como: 𝑌𝑖 =𝛽0+𝛽1𝑋𝑖+𝜀𝑖 Donde: • Yi es el valor de la variable dependiente en la observación i. • β0 es el termino de intercepcin, que representa el valor de Y cuando la variable independiente Xi es igual a cero. • β1 es el coeficiente de regresin, que indica cómo influye la variable independiente Xi en la variable dependiente Y. • Xi es el valor de la variable independiente en la observación i. • εi es el termino de error, que representa la variabilidad no explicada por el modelo. Durante el entrenamiento del modelo de regresión lineal simple, el algoritmo ajusta los coeficientes de regresin (β0 y β1) para minimizar el error cuadrtico medio entre las predicciones del modelo y los valores reales de Y en el conjunto de entrenamiento. Una vez entrenado el modelo, se puede utilizar para predecir el valor de Y en función de nuevos valores de Xi. La regresión lineal simple es un modelo sencillo y fcil de interpretar, ya que proporciona una estimación directa de la relación lineal entre la variable independiente y la variable dependiente. El coeficiente de regresión β1 indica como cambia Y en promedio cuando Xi aumenta en una unidad. Sin embargo, es importante tener en cuenta que la regresión lineal simple asume una relación lineal y aditiva entre la variable independiente y la variable dependiente. Esto implica que la relación entre las variables es constante en todo el rango de valores. Si la relación no es lineal o si hay otras variables que influyen en la variable dependiente, el modelo de regresión lineal simple puede no ser apropiado. 6.2.2. Regresión Logística La regresión logística [23] es un modelo estadístico utilizado en el ML para analizar la relación entre una variable dependiente binaria (Y) y un conjunto de variables independientes continuas o categóricas (X1, X2, X3, etc.). El objetivo de la regresión logística es estimar la probabilidad de que Y sea igual a 1 en función de los valores de las variables independientes. En la regresión logística, se utiliza una función logística (también conocida como sigmoide) para modelar la relación entre las variables independientes y la probabilidad de que 41 Para llevar a cabo este análisis, resulta imprescindible centralizarlo en el entorno inalámbrico IEEE 802.11 (WiFi), además de tener en cuenta que la encuesta se va a lanzar en dos entornos universitarios muy distintos: facultad de ciencias y facultad de educación. 6.3.1. Factores humanos Para comenzar, se van a analizar los diversos factores humanos relevantes que pueden influir en la experiencia de calidad de los usuarios, pero en este caso, se centrará el análisis en el estudio de este proyecto en particular. 6.3.1.1. Perfil de usuario El perfil de usuario puede incluir diferentes variables, como la edad, el sexo, el área de estudio, el género, entre otros. En este caso de estudio, es importante tener en cuenta el perfil de usuario, ya que las diferentes tipologías de usuarios pueden tener necesidades y expectativas diferentes con respecto al servicio de red inalámbrica. Por ejemplo, los estudiantes de ciencias pueden tener necesidades más exigentes en cuanto a la velocidad de conexión y la disponibilidad de ancho de banda debido a que necesitan acceder a recursos pesados como software de simulación, bases de datos o bibliografías digitales. En cambio, los estudiantes de humanidades pueden tener una menor exigencia en términos de ancho de banda, pero pueden ser más sensibles a la disponibilidad de la red y a la calidad de la señal debido a que pueden necesitar acceder a la red en zonas con menor cobertura como bibliotecas, salas de lectura, entre otros. Por lo tanto, es necesario identificar las diferentes tipologías de usuarios y sus necesidades específicas para poder gestionar de forma eficiente la QoE. Esto puede permitir tomar decisiones informadas y adaptar el servicio a las necesidades y expectativas de los usuarios, lo que puede mejorar la percepción de calidad del servicio y, por lo tanto, la QoE. 6.3.1.2. Conocimientos técnicos El conocimiento técnico de los usuarios es otro de los factores de influencia clave que puede afectar a la QoE. El conocimiento técnico de los usuarios se refiere a la habilidad que tienen los usuarios para utilizar dispositivos tecnológicos y comprender el funcionamiento de las redes inalámbricas. En este caso, es importante tener en cuenta el conocimiento técnico de los usuarios ya que esto puede influir en la percepción de la QoS de red inalámbrica. Por ejemplo, si los usuarios tienen un bajo conocimiento técnico, pueden experimentar problemas al conectarse a la red, configurar la conexión, solucionar problemas técnicos, entre otros. Esto puede generar una percepción negativa de la calidad del servicio y, por lo tanto, reducir la QoE. Por ello, es necesario identificar el nivel de conocimiento técnico de los usuarios y ofrecer soluciones y recursos adecuados para ayudar a los usuarios a superar las dificultades técnicas que puedan experimentar. Esto puede incluir la provisión de manuales de uso, guías de solución de problemas y asistencia técnica. De esta manera, los usuarios pueden sentirse más 42 seguros y confiados en el uso de la red inalámbrica, lo que puede mejorar su percepción de calidad del servicio y, por lo tanto, la QoE. Además, ofrecer recursos y soluciones adecuados puede ser especialmente relevante para aquellos usuarios con menor conocimiento técnico, como pueden ser los estudiantes de humanidades que pueden tener menos familiaridad con las tecnologías inalámbricas. 6.3.1.3. Expectativas previas Las expectativas previas de los usuarios se refieren a las percepciones que tienen los usuarios sobre el servicio de red inalámbrica antes de utilizarlo, ya sea por experiencias previas o por información recibida de otros usuarios o fuentes. Es importante tener en cuenta las expectativas previas de los usuarios ya que esto puede influir en su percepción de la QoS. Si los usuarios tienen expectativas muy altas sobre el servicio, pueden experimentar una percepción negativa si la calidad del servicio no cumple con sus expectativas. Por otro lado, si los usuarios tienen expectativas bajas, pueden experimentar una percepción positiva si la calidad del servicio supera sus expectativas. Por ello, es necesario identificar las expectativas previas de los usuarios para poder establecer estrategias para satisfacerlas. Esto puede incluir la comunicación clara de los niveles de QoS ofrecidos, el establecimiento de compromisos y garantías de calidad, y la provisión de información clara y detallada sobre el servicio de red inalámbrica. Así, los usuarios pueden tener una percepción más realista del servicio y ajustar sus expectativas en consecuencia, lo que puede mejorar su percepción de calidad del servicio. 6.3.1.4. Experiencias previas Las experiencias previas de los usuarios hacen referencia a las interacciones que han tenido los usuarios con el servicio de red inalámbrica anteriormente. Estas experiencias pueden moldear la percepción de la QoS que los usuarios tienen en interacciones futuras con la red. Es fundamental considerar las experiencias previas de los usuarios, ya que éstas pueden influir en su evaluación de la QoS. Si las experiencias previas con el servicio fueron satisfactorias, los usuarios pueden ser más comprensivos si la calidad del servicio disminuye temporalmente. Sin embargo, si las experiencias previas fueron negativas, los usuarios pueden ser más críticos con la calidad del servicio, incluso si ésta mejora. Por ello, es importante reconocer y entender las experiencias previas de los usuarios para poder desarrollar estrategias que mejoren su percepción de la calidad del servicio. Esto puede implicar aprender de errores y problemas pasados, implementar mejoras en la red basadas en el feedback de los usuarios, y proporcionar un servicio consistente y confiable que refuerce experiencias positivas. 43 6.3.1.5. Uso previsto El uso previsto se refiere al tipo de actividad que los usuarios tienen previsto realizar en la red inalámbrica, así como a la cantidad de tiempo que estarán utilizando la red. En este caso de estudio, es importante tener en cuenta el uso previsto de los usuarios dado que puede influir en la percepción de la QoS de la red. Si los usuarios tienen previsto realizar actividades que requieren un alto consumo de datos, como la descarga o el streaming de vídeos, pueden experimentar una percepción negativa de la calidad del servicio si no se les proporciona suficiente ancho de banda. De igual forma, si los usuarios van a utilizar la red durante largos periodos de tiempo, pueden experimentar una percepción negativa si se producen interrupciones o problemas de conectividad. Por tanto, se debe identificar el uso previsto de los usuarios y adaptar el servicio de red inalámbrica a sus necesidades específicas. Por ejemplo, se puede asignar los recursos de ancho de banda en función del tipo de actividad que se va a realizar, la provisión de soluciones para garantizar la disponibilidad y la calidad del servicio durante largos periodos de tiempo, etc. De esta manera, los usuarios pueden realizar sus actividades de forma satisfactoria y experimentar una percepción positiva de la calidad del servicio. 6.3.2. Factores del sistema A continuación, se va a realizar el análisis de los factores de sistema relevantes que pueden influir en la experiencia de calidad de los usuarios, pero en este caso, se centrará el análisis en el estudio de este proyecto en particular. 6.3.2.1. Factores relacionados con la red Los factores relacionados con la red son un aspecto clave a considerar al identificar los factores de influencia en este caso de estudio. Estos factores pueden incluir aspectos técnicos (objetivos) relacionados con la calidad de la conexión, como la velocidad de transferencia de datos, la disponibilidad de ancho de banda y la estabilidad de la señal, así como otros aspectos relacionados con la infraestructura de red, como el número de dispositivos conectados a la red y la congestión de la red. Es uno de los aspectos más importantes a tener en, ya que la calidad de la conexión es un aspecto crítico para la percepción de QoS, y a su vez para la QoE. Si la conexión es lenta o inestable, los usuarios pueden experimentar una percepción negativa de la calidad del servicio y, por lo tanto, reducir su QoE. Por otro lado, si la conexión es rápida y estable, los usuarios pueden experimentar una percepción positiva de la calidad del servicio y, por lo tanto, aumentar su QoE. Es un aspecto crítico a tener en cuenta para identificar los problemas relacionados y así poder mejorarlos. Esto puede incluir la optimización de la infraestructura de red o la implementación de medidas de gestión de tráfico. Asimismo, es importante monitorear de forma regular la calidad de la conexión y adoptar medidas preventivas para evitar congestiones y otros problemas técnicos que puedan afectar a la calidad del servicio. 44 6.3.2.2. Factores relacionados con el dispositivo Uno de los factores de influencia relevantes a considerar es el dispositivo utilizado por parte de los usuarios. Depende del dispositivo utilizado, puede haber diferencias respecto al procesamiento de los datos o la compatibilidad con los protocolos de la red. La calidad del dispositivo utilizado puede tener un impacto significativo en la percepción de calidad del servicio de la red por parte de los usuarios. Si el dispositivo no tiene suficientes recursos para manejar la información y los datos, los usuarios pueden experimentar una percepción negativa de la calidad del servicio, lo que puede reducir su QoE. Por ende, es importante identificar los factores técnicos relacionados con el dispositivo utilizado y tomar medidas para optimizar su rendimiento. Esto puede incluir actualizar el software y el hardware del dispositivo, administrar las aplicaciones que se ejecutan en el dispositivo y adoptar medidas de seguridad para proteger la información transmitida a través de la red inalámbrica. 6.3.2.3. Factores relacionados con el contenido Los factores relacionados con el contenido tienen un impacto significativo en la percepción de calidad del servicio de red por parte de los usuarios. Estos factores re refieren al tipo de acción realizada a través de la red (descarga/subida de archivos, navegacin web…). Si el contenido es muy complejo o requiere una gran cantidad de recursos de la red, los usuarios pueden experimentar una percepción negativa de la calidad del servicio, lo que puede reducir su QoE. Por otro lado, si el contenido es fácil de manejar y no requiere grandes cantidades de ancho de banda, los usuarios pueden experimentar una percepción positiva de la calidad del servicio, lo que puede aumentar su QoE. Es esencial identificar los factores relacionados con el contenido utilizado en la red. Al identificar las actividades más realizadas dentro de la red, se pueden asignar los recursos de manera óptima y eficiente, lo que puede mejorar la percepción de calidad del servicio de red inalámbrica por parte de los usuarios. 6.3.3. Factores de contexto Para finalizar, se va a realizar el análisis de los factores de contexto de mayor importancia que pueden influir en la experiencia de calidad de los usuarios, pero de nuevo, se centrará el análisis en el estudio de este proyecto en particular. 6.3.3.1. Contexto físico Un factor importante relacionado con el contexto especifico, es el contexto físico en el que se utiliza la red WiFi. Este factor se refiere al lugar donde se encuentra el usuario y cómo puede afectar la percepción de calidad del servicio. El contexto físico puede influir en la QoE de los usuarios de diferentes maneras. Por ejemplo, si el lugar donde se utiliza la red inalámbrica tiene una alta densidad de usuarios o está 45 rodeado de objetos que interfieren con la señal inalámbrica, puede haber una disminución en la calidad del servicio. De igual manera, si el lugar cuenta con una buena infraestructura de red y está libre de interferencias, puede haber una percepción positiva de la calidad del servicio. Es importante considerar el contexto físico al identificar los factores de influencia en el caso de estudio, ya que esto puede ayudar a identificar los lugares con más o menos señal dentro del campus universitario. Por tanto, en los lugares donde no haya buena cobertura, se pueden realizar una serie de mejoras, tales como, la instalación de equipos adicionales para mejorar la cobertura de la señal y la identificación de interferencias en la señal para mitigar su impacto en la calidad del servicio, entre otros. 6.3.3.2. Contexto temporal Entre los factores de contexto, se encuentra el contexto temporal, es decir, el momento del día en el que se utiliza la red inalámbrica. El contexto temporal puede afectar la calidad del servicio de red WiFi de diversas maneras. Por ejemplo, durante las horas pico, cuando hay una gran cantidad de usuarios conectados a la red, puede haber una menor disponibilidad de ancho de banda, lo que puede afectar negativamente la calidad del servicio. Por otro lado, durante las horas de menor uso, la calidad del servicio puede mejorar debido a una menor cantidad de usuarios conectados a la red. Para comprender mejor la percepción de calidad del servicio por parte de los usuarios, es esencial tener en cuenta el contexto temporal en el que se utiliza la red. Al conocer la hora del día en la que se utiliza la red inalámbrica, se pueden tomar medidas para mejorar la calidad del servicio y aumentar la satisfacción de los usuarios. Por lo tanto, se pueden identificar las horas pico en el que se utiliza la red inalámbrica y tomar medidas para optimizar su rendimiento. Por ejemplo, se puede llevar a cabo la implementación de medidas de gestión de tráfico para garantizar una distribución equitativa de los recursos de la red. 6.3.3.3. Contexto social Otro factor de influencia a considerar es el contexto social en el que se utiliza la red inalámbrica. Este factor se refiere a cómo las interacciones sociales pueden afectar la percepción de calidad del servicio de red inalámbrica. El contexto social puede influir en la QoE de los usuarios de diferentes maneras. Por ejemplo, si el lugar donde se utiliza la red inalámbrica es un espacio público, como una biblioteca o un café, la presencia de otros usuarios puede afectar la calidad del servicio debido a la sobrecarga de la red. Por otro lado, en un contexto social más cerrado, como una oficina o un aula, es posible que haya menos usuarios conectados a la red, lo que puede mejorar la calidad del servicio. Es importante considerar el contexto social al identificar los factores de influencia en el caso de estudio, ya que esto puede ayudar a comprender mejor la percepción de calidad del servicio por parte de los usuarios. Al conocer el contexto social en el que se utiliza la red 46 inalámbrica, se pueden tomar medidas para mejorar la QoS y, por lo tanto, aumentar la satisfacción de los usuarios. 6.3.3.4. Contexto técnico El contexto técnico es otro de los factores importantes a considerar en la evaluación de la calidad del servicio en una red WiFi. Este factor se refiere a la relación entre los distintos sistemas que componen la red, como el enrutador, los dispositivos de acceso, la infraestructura de red y los protocolos utilizados. Es importante tener en cuenta que estos factores pueden influir en la QoE del usuario de diferentes maneras. Por ejemplo, una red WiFi con un router de baja calidad o una infraestructura de red obsoleta puede tener una mala QoS, lo que puede afectar negativamente la experiencia del usuario al reducir la velocidad de conexión o causar interrupciones en la conexión. Por lo tanto, es necesario evaluar el contexto técnico de la red WiFi para identificar posibles problemas que puedan afectar la calidad del servicio y tomar medidas para solucionarlos. Esto puede incluir la actualización de la infraestructura de red, la implementación de nuevos protocolos o la optimización de la configuración del enrutador y otros dispositivos de acceso. 6.3.4. Criterios de selección 1. Impacto en la QoE (25 %): se deben seleccionar los factores de influencia que tengan un impacto directo en la QoE de los usuarios al utilizar la conexión WiFi en los campus universitarios. 2. Relevancia para los usuarios (20 %): es importante seleccionar los factores de influencia que más afectan la calidad de la conexión WiFi desde la perspectiva de los usuarios en cada uno de los campus universitarios. 3. Diferencias significativas entre los campus universitarios (20 %): se deben seleccionar los factores de influencia que muestren diferencias significativas entre los dos campus universitarios para poder comparar la calidad de la conexión WiFi de manera efectiva. 4. Facilidad de medición (20 %): se deben seleccionar los factores de influencia que sean medibles de manera fácil y precisa para poder realizar el estudio de manera efectiva y obtener resultados confiables. 5. Posibilidad de mejora (15 %): se deben seleccionar los factores de influencia que tengan un mayor potencial para ser mejorados y, por lo tanto, para mejorar la calidad de la conexión WiFi en los campus universitarios. 47 En este caso, se ha determinado que todos los factores humanos analizados obtienen la misma puntuación, concluyendo que todos tienen la misma importancia en el caso de estudio. Esto sugiere que todos ellos deben ser considerados cuidadosamente durante la planificación y ejecución de la encuesta para obtener un resultado más preciso de la QoE de los usuarios. Criterios Perfil de usuario Conocimientos técnicos Expectativas previas Uso previsto Porcentaje (%) Relevancia para los usuarios 3 3 3 3 20 Diferencia entre los campus universitarios 5 5 5 4 20 Facilidad de medición 4 4 4 5 20 Impacto en la QoE 4 4 4 4 25 Posibilidad de mejora 2 2 2 2 15 TOTAL 3,7 3,7 3,7 3,7 Tabla 4: Matriz de alternativas de factores humanos Criterios Factores relacionados con la red Factores relacionados con el contenido Factores relacionados con el dispositivo Porcentaje (%) Relevancia para los usuarios 5 5 4 20 Diferencia entre los campus universitarios 3 4 3 20 Facilidad de medición 4 3 5 20 Impacto en la QoE 5 5 5 25 Posibilidad de mejora 3 3 3 15 TOTAL 4,1 4,1 4,1 Tabla 5: Matriz de alternativas de factores de sistema 48 De la misma manera, se ha determinado que todos los factores de sistema analizados obtienen la misma puntuación, lo que sugiere que cada uno de ellos es esencial para garantizar una realización óptima de la encuesta y obtener conclusiones rigurosas sobre la percepción de los usuarios en cuanto a los factores del sistema de la red. En este caso, se ha observado que los factores con mayor puntuación son el contexto físico y temporal. Estos factores son especialmente importantes debido a su facilidad de medición y su impacto en la QoE de los usuarios. Aunque el contexto social también es un aspecto relevante, en este caso podría ser redundante, ya que algunos de sus parámetros, como los lugares con mayor o menor cobertura y la cantidad de usuarios conectados, pueden medirse con los factores mencionados: contexto temporal y físico. En cuanto al contexto técnico, aunque es un factor importante, su medición puede resultar un poco complicada. En este caso, se ha decidido que es prescindible para la elaboración de la encuesta, ya que otros factores tienen una mayor relevancia en este proyecto. 6.4. Entorno de desarrollo En la sección 5.3.1, se han analizado varios entornos de desarrollo para la creación de modelos de ML, incluyendo Jupyter Notebooks, Google Colab, Data Spell, PyCharm y Visual Studio Code. Sin embargo, en este análisis se ha decidido enfocarse en los tres primeros entornos, ya que son los que mejor se adaptan a las necesidades específicas del caso de estudio. Jupyter Notebooks, Google Colab y Data Spell son especialmente adecuados para el análisis de datos y la creación de modelos de ML. Son entornos flexibles y versátiles que permiten la colaboración y la experimentación con diferentes enfoques de análisis y modelos. Además, ofrecen herramientas útiles para la visualización de datos y la comunicación de resultados. Criterios Contexto físico Contexto temporal Contexto social Contexto técnico Porcentaje (%) Relevancia para los usuarios 4 4 4 4 20 Diferencia entre los campus universitarios 3 3 3 3 20 Facilidad de medición 4 4 3 2 20 Impacto en la QoE 4 4 4 4 25 Posibilidad de mejora 3 3 3 2 15 TOTAL 3,65 3,65 3,45 3,25 Tabla 6: Matriz de alternativas de los factores de contexto 49 6.4.1. Jupyter Notebooks Jupyter Notebooks, como analizado anteriormente, es una plataforma de código abierto y gratuita que permite la integración de diferentes lenguajes de programación como Python, R y Julia. Se trata de un entorno de desarrollo interactivo que permite la exploración y prototipado de modelos de ML y análisis de datos. Entre las ventajas de Jupyter Notebooks, destaca su carácter de código abierto y gratuito, lo que la hace accesible a cualquier usuario interesado en la ciencia de datos. Además, Jupyter Notebooks es altamente personalizable y permite la integración de diferentes lenguajes de programación, lo que la convierte en una herramienta versátil y flexible. Otra ventaja es que los notebooks pueden ser compartidos fácilmente a través de plataformas como GitHub o Google Collab. Entre las desventajas de Jupyter Notebooks, destaca su complejidad para usuarios nuevos o que no estén familiarizados con el lenguaje de programación. Además, la gestión de versiones de los notebooks puede ser complicada y puede llevar a problemas de compatibilidad entre diferentes versiones. Otra desventaja importante de Jupyter Notebooks es que, aunque es un entorno de desarrollo interactivo, no es un IDE completo y no cuenta con opciones avanzadas de “debbuging”. Esto puede hacer que la identificación y corrección de errores en el código sea más complicada en comparación con otras herramientas de programación. 6.4.2. Google Colab Google Colab, como explicaco en el apartado 5.3.1.2, es una plataforma de código abierto y gratuita que permite el desarrollo de proyectos de ciencia de datos y ML. Sin embargo, Google Colab se ejecuta en la nube y ofrece algunas características adicionales debido a su integración con los servicios de Google. Una de las ventajas más destacadas de Google Colab es su facilidad de acceso. Al ser una herramienta basada en la nube, no requiere ninguna instalación o configuración local, lo que la hace muy conveniente para usuarios que no deseen lidiar con la configuración de un entorno de desarrollo en sus propias máquinas. Además, Google Colab está estrechamente integrado con otros servicios de Google, como Google Drive, lo que facilita el almacenamiento y acceso a los datos y notebooks. Google Colab también ofrece una amplia gama de recursos computacionales, incluyendo unidades de procesamiento gráfico (GPU) y unidades de procesamiento tensorial (TPU). Estos recursos son especialmente útiles para acelerar el entrenamiento de modelos de ML y procesamiento de datos a gran escala. Google Colab es compatible con múltiples lenguajes de programación, con un enfoque principal en Python. Esto permite a los usuarios trabajar con bibliotecas populares de ML como TensorFlow, PyTorch y scikit-learn. 50 6.4.3. DataSpell Tal y como se ha visto en 13, DataSpell es un entorno de desarrollo integrado (IDE) específico para la ciencia de datos, que permite el trabajo con diferentes lenguajes de programación como Python, R y SQL, entre otros. Es una herramienta de pago que ofrece una amplia gama de características y herramientas para la exploración y análisis de datos, y para la creación de modelos de aprendizaje automático. Entre las ventajas de DataSpell, destaca su amplio conjunto de herramientas de análisis de datos y modelado, que incluyen bibliotecas de aprendizaje automático integradas y herramientas de visualización avanzadas. Además, ofrece una interfaz de usuario intuitiva y fácil de usar, lo que la hace accesible para usuarios con diferentes niveles de experiencia. También ofrece opciones avanzadas de “debugging” y un sistema de gestión de versiones integrado, lo que facilita la colaboración en proyectos de ciencia de datos en equipo. Entre las desventajas de DataSpell, destaca su carácter de pago, lo que puede limitar su accesibilidad a usuarios con menos recursos o presupuestos más reducidos. Además, al ser una herramienta de propósito específico, puede requerir una curva de aprendizaje mayor en comparación con otras herramientas de programación. 6.4.4. Criterios de selección 1. Capacidad de procesamiento (25 %): es uno de los aspectos más importantes a tener en cuenta. Se debe seleccionar un entorno de desarrollo que tenga una alta capacidad de procesamiento para manejar la gran cantidad de datos y ejecutar los algoritmos de ML de manera eficiente. 2. Flexibilidad de la plataforma (25 %): también es uno de los aspectos más importantes ya que, para trabajar de forma eficiente es importante seleccionar una plataforma que sea flexible y permita la implementación de diferentes algoritmos de ML para analizar y correlacionar los datos. 3. Interfaz de usuario amigable (20 %): es un aspecto con un poco de menos peso, pero también es relevante seleccionar una plataforma que tenga una interfaz de usuario amigable y fácil de usar para facilitar la manipulación y análisis de datos. 4. Compatibilidad con las herramientas existentes (20 %): este aspecto tiene el mismo peso que el anterior, ya que es igual de importante seleccionar un entorno de desarrollo que sea compatible con las herramientas de análisis y visualización de datos existentes para poder integrarlas fácilmente en el proceso de análisis. 5. Coste (10 %): este es el aspecto con el menor peso, ya que, aunque es importante seleccionar un entorno de desarrollo que se adapte al presupuesto disponible, es más importante que sea una plataforma óptimo en los aspectos mencionados. 57 en las sesiones de cada usuario. A continuación, se realiza una breve descripción de la información presente en los conjuntos de datos: 1. Client IP Address: La dirección IP asignada al cliente (dispositivo) que se conecta a la red WiFi. Este dato es importante para identificar cada dispositivo en la red. 2. Client MAC Address: La dirección MAC (Media Access Control) del cliente, que es un identificador único asignado a la tarjeta de red del dispositivo. Esta información es esencial para identificar de manera precisa y unívoca cada dispositivo conectado a la red. 3. id: Identificador único del cliente. Esta columna proporciona un identificador único para cada cliente en los conjuntos de datos, lo cual facilita su seguimiento y análisis individual. 4. Association Time: El momento en que el cliente se ha asociado (conectado) a la red WiFi. Este dato permite analizar la duración de las conexiones y comprender el comportamiento de los clientes en relación con el tiempo. 5. Global Unique: Identificador único global. Esta columna puede contener identificadores únicos adicionales asociados a los clientes, los cuales pueden ser útiles para realizar análisis más detallados. 6. Local Unique: Identificador único local. Al igual que el campo anterior, esta columna puede contener identificadores únicos adicionales para los clientes. 7. Link Local: Dirección IP de enlace local asignada al cliente. Esta dirección IP se utiliza para la comunicación dentro de la red local y es relevante para el enrutamiento de datos. 8. Endpoint Type: Tipo de punto final del cliente (por ejemplo, cliente móvil, cliente fijo, etc.). Esta información permite diferenciar los diferentes tipos de dispositivos que se conectan a la red WiFi. 9. CCX: Cisco Compatible Extensions, una especificación de Cisco para mejorar las capacidades de los dispositivos inalámbricos. Esta columna indica si los clientes son compatibles con las extensiones de Cisco y puede ser relevante para análisis específicos relacionados con la compatibilidad de dispositivos. 10. Mobility Oracle: Oracle de movilidad. Esta columna puede contener información adicional relacionada con la movilidad de los dispositivos en la red, proporcionada por un sistema de movilidad específico. 11. Mobility Controller: Controlador de movilidad. Esta columna indica el controlador de movilidad utilizado para gestionar los movimientos de los dispositivos en la red. 12. Anchor Mobility Controller: Controlador de movilidad ancla. Esta columna indica el controlador de movilidad utilizado como punto de referencia para gestionar la movilidad de los dispositivos en la red. 13. Switch Peer Group: Grupo de pares de conmutadores. Esta columna puede contener información sobre los grupos de pares de conmutadores utilizados en la red para mejorar la eficiencia y la redundancia. 14. Anchor Switch Peer Group: Grupo de pares de conmutadores ancla. Esta columna indica el grupo de pares de conmutadores utilizado como punto de referencia para mejorar la eficiencia y la redundancia en la red. 15. E2E: End-to-End (extremo a extremo), que indica que se refiere a un parámetro o estado que abarca todo el trayecto de comunicación. Esta columna puede indicar la medición de parámetros de extremo a extremo relacionados con la calidad de servicio. 58 16. PMIP State: Estado de PMIP (Protocolo de movilidad de IP). Esta columna puede contener información sobre el estado del Protocolo de Movilidad de IP, que se utiliza para administrar la movilidad de los dispositivos en redes IP. 17. PMIP Connected Interface: Interfaz conectada PMIP. Esta columna indica la interfaz de red utilizada para establecer la conexión PMIP, lo cual es relevante para el enrutamiento y la comunicación de los dispositivos. 18. Home Address: Dirección IP de inicio del cliente. Esta columna muestra la dirección IP asignada como "hogar" para cada cliente en la red, lo cual puede ser útil para rastrear y administrar las conexiones de los dispositivos. 19. Access Technology Type: Tipo de tecnología de acceso utilizada por el cliente (por ejemplo, 802.11a, 802.11n, etc.). Esta columna indica la tecnología inalámbrica utilizada por los dispositivos para acceder a la red WiFi. 20. Local Link Identifier: Identificador de enlace local. Este campo puede contener un identificador único asignado a cada enlace local en la red, lo cual puede ser relevante para el enrutamiento y la gestión de la conectividad. 21. LMA: Local Mobility Anchor (ancla local de movilidad). Esta columna indica el ancla local de movilidad utilizado en la red, que es un punto de referencia para el manejo de la movilidad de los dispositivos. 22. Vendor: Fabricante o proveedor del cliente o dispositivo. Esta columna muestra el nombre del fabricante o proveedor del dispositivo cliente, lo cual puede ser útil para identificar las características y especificaciones de los dispositivos utilizados en la red. 23. AP Name: Nombre del punto de acceso (Access Point). Esta columna indica el nombre asignado a cada punto de acceso en la red WiFi. 24. Radio Type: Tipo de radio del punto de acceso (por ejemplo, 2.4 GHz, 5 GHz). Esta columna muestra el tipo de radio utilizado por cada punto de acceso, lo cual es relevante para comprender las características de la red inalámbrica. 25. Device Name: Nombre del dispositivo. Esta columna muestra el nombre asignado a cada dispositivo cliente en la red. 26. Map Location: Ubicación en un mapa. Esta columna puede contener información geográfica o de ubicación asociada a cada dispositivo o punto de acceso en la red. 27. SSID: Service Set Identifier, el nombre de la red WiFi a la que el cliente se está conectando. Esta columna muestra el nombre de la red inalámbrica a la que cada cliente se ha conectado. 28. Profile: Perfil asociado al cliente. Esta columna indica el perfil de configuración o ajustes específicos aplicados a cada cliente en la red. 29. VLAN ID: ID de VLAN (Virtual LAN) asociada al cliente. Esta columna muestra el identificador único de la VLAN a la que cada cliente está asignado, lo cual es relevante para la segmentación y el enrutamiento de la red. 30. Protocol: Protocolo utilizado (por ejemplo, TCP, UDP). Esta columna indica el protocolo de comunicación utilizado en cada conexión de red. 31. Session Duration: Duración de la sesión del cliente. Esta columna muestra el tiempo de duración de la sesión de cada cliente en la red WiFi. 32. Policy Type: Tipo de política aplicada al cliente. Esta columna indica el tipo de política de red o conjunto de reglas aplicadas a cada cliente. 33. Avg. Session Throughput (Kbps): Promedio del rendimiento de la sesión en kilobits por segundo. Esta columna muestra el rendimiento promedio de la sesión de cada cliente, es decir, la velocidad de transferencia de datos promedio durante el tiempo de conexión. 59 34. Host Name: Nombre del host o dispositivo. Esta columna muestra el nombre asignado al host o dispositivo cliente en la red. 35. Client Type: Tipo de cliente (por ejemplo, cliente corporativo, cliente de invitado). Esta columna indica el tipo de cliente conectado a la red WiFi, lo cual puede ser relevante para analizar diferentes perfiles de usuarios. 36. Speed: Velocidad de conexión del cliente. Esta columna muestra la velocidad de conexión de cada cliente en la red, es decir, la capacidad de transferencia de datos que se puede alcanzar. 37. AP MAC Address: Dirección MAC del punto de acceso al que se conecta el cliente. Esta columna muestra la dirección MAC del punto de acceso WiFi al que cada cliente está conectado. 38. AP IP Address: Dirección IP del punto de acceso al que se conecta el cliente. Esta columna muestra la dirección IP asignada al punto de acceso WiFi al que cada cliente está conectado. 39. Device IP: Dirección IP del dispositivo cliente. Esta columna muestra la dirección IP asignada a cada dispositivo cliente en la red. 40. Controller Port: Puerto del controlador utilizado. Esta columna indica el puerto del controlador utilizado para gestionar la conexión del cliente. 41. Anchor Controller: Controlador de anclaje. Esta columna indica el controlador de anclaje utilizado en la red, que se encarga de la gestión de la movilidad de los dispositivos. 42. Association ID: ID de asociación. Esta columna muestra el identificador único asociado a la asociación entre el cliente y el punto de acceso WiFi. Los conjuntos de datos analizados contienen una amplia variedad de parámetros que proporcionan información detallada sobre cada sesión de usuario en la red WiFi. Es esencial destacar la importancia de manejar estos datos de manera cuidadosa y respetuosa, siguiendo los principios de protección de datos establecidos en la Ley Orgánica de Protección de Datos (GDPR). En este contexto, es fundamental la pseudoanonimización (enmascarar o sustituir los datos personales con pseudónimos para prevenir la identificación directa o indirecta de los individuos) de datos personales, como los identificadores de usuario y las direcciones IP, lo que garantiza la privacidad de los usuarios. A pesar de esta transformación, la estructura de los datos se mantiene intacta, lo que permite la realización de análisis y modelizaciones. Es crucial recordar que el manejo de datos personales debe realizarse siempre con respeto y de acuerdo con las leyes y regulaciones vigentes, garantizando la confidencialidad y la integridad de los datos de los usuarios. Además, es importante mencionar que se encuentra en proceso de aprobación la memoria M10/2023/184. Este documento está enmarcado dentro de nuestro proyecto actual y esperamos obtener su aprobación en breve. Esta memoria abarca y consolida la visión y las estrategias que se siguen en el tratamiento de los datos. Por otro lado, si bien todos los parámetros son importantes para tener una visión completa y contextualizada de cada sesión de usuario, en este caso de estudio se ha decidido centrarse en un parámetro específico, como ya se ha establecido en el apartado 6: el throughput medio de las sesiones. Esta elección se debe a que el throughput es un indicador clave de la QoS en una red WiFi. El throughput medio se define como la velocidad promedio de transferencia de datos durante el tiempo de conexión de cada usuario a la red WiFi. Es un indicador directo de la 60 capacidad de la red para satisfacer las demandas de transmisión de datos de los usuarios. Un alto throughput indica una mayor capacidad de transmisión de datos y, por lo tanto, una mejor calidad de servicio. Este enfoque se justifica por varias razones. La norma IEEE 802.11, que rige las redes WiFi, menciona que el throughput es una métrica esencial para medir la capacidad de la red. Las actualizaciones sucesivas de esta norma, como la IEEE 802.11n y la IEEE 802.11ac, se han centrado en gran medida en mejorar el throughput. Además, un informe de Cisco, líder en el sector de la tecnología de redes, titulado "Understanding QoS in Wireless LANs" [28], identifica el throughput como una de las tres métricas claves de la QoS, junto con la latencia y el jitter. En el caso de los conjuntos de datos, el "avg. throughput" (tal y como se denomina la columna) de una sesión se refiere al promedio de la tasa de transferencia de datos durante la duración de una sesión de conexión a la red WiFi. Representa la velocidad media a la que se transmiten los datos entre el usuario (dispositivo conectado a la red WiFi) y el punto de acceso (AP) durante el tiempo en que se mantiene la conexión. El “avg. throughput” se expresa en kilobits por segundo (Kbps) y se calcula dividiendo la cantidad total de datos enviados y recibidos durante la sesión por la duración de la sesión. Este valor proporciona una medida promedio del rendimiento de la conexión durante el tiempo en que el usuario estuvo conectado a la red WiFi. El throughput desempeña un papel crucial en la calidad de la experiencia del usuario en una red WiFi. Una conexión de alta velocidad, representada por un alto throughput, permite una transferencia rápida y eficiente de datos, lo que se podría traducir en una experiencia de usuario mejorada. Los usuarios pueden disfrutar de una navegación web fluida, una reproducción de video sin interrupciones, descargas rápidas y una mayor capacidad para realizar múltiples tareas en línea. Por otro lado, una conexión lenta con un bajo throughput puede resultar en retrasos en la carga de páginas web, interrupciones en la transmisión de video y una experiencia general insatisfactoria. Al correlacionar el throughput con las puntuaciones MOS, se obtendrá una comprensión más profunda de cómo la calidad de la red WiFi, representada por el throughput, afecta la percepción y satisfacción de los usuarios. Esta información puede ser invaluable para la gestión de la red, permitiendo identificar áreas de mejora y tomar medidas para optimizar el rendimiento de la red y mejorar la calidad de la experiencia del usuario. Recopilación de datos subjetivos Como se ha comentado anteriormente, debido a problemas de plazo con la comisión ética, se ha tomado la decisión de simular los resultados de las valoraciones MOS. Esta elección se ha tomado tras una cuidadosa consideración de los posibles riesgos y beneficios. Los estudios de investigación en este ámbito normalmente dependen de las respuestas de los usuarios para obtener estos datos. Sin embargo, estos problemas éticos pueden generar complicaciones significativas. Por lo tanto, para garantizar la continuidad de la investigación y la obtención de datos relevantes, se optó por la simulación de los resultados MOS. Esta decisión fue informada y 61 respaldada por diversos estudios previos en este campo. Un estudio particularmente relevante es "Effect of quality of service parameters on quality of experience for YouTube service in mobile networks" [29]. En este artículo, los investigadores llevaron a cabo un análisis exhaustivo de cómo las variaciones en los parámetros de la QoS, como el throughput, afectan la QoE (Quality of Experience), medida a través de los resultados MOS. La simulación de los resultados MOS se utilizó en este estudio para prever y evaluar el impacto de los parámetros de QoS en la QoE del usuario. Aunque esta estrategia no reemplaza completamente los datos recopilados a través de encuestas directas a los usuarios, ofrece una solución viable y éticamente responsable en la situación donde la recopilación de datos primarios no es factible. Sin embargo, es importante señalar que, aunque los resultados obtenidos a través de la simulación proporcionan información valiosa, no pueden capturar todas las complejidades y factores contextuales que podrían surgir de los datos recopilados directamente de los usuarios. Como tal, los resultados deben interpretarse con cierta cautela, y es esencial considerar la realización de investigaciones adicionales una vez que se resuelvan los problemas éticos relacionados con la encuesta a los usuarios. Para simular los datos de las puntuaciones MOS, se ha comenzado con el análisis de los datos de throughput disponibles en los conjuntos de datos existentes. A partir de estos, se ha asignado una puntuación MOS para cada valor de throughput. Para introducir un elemento de variabilidad y simular el factor de contexto que se experimenta en situaciones reales, se ha añadido una cierta aleatoriedad a la asignación de las puntuaciones MOS. Teniendo en cuenta las posibles diferencias entre las necesidades y expectativas de los usuarios en diferentes facultades, se ha ajustado la simulación de los datos MOS para los conjuntos de datos correspondientes a las facultades de Educación e Ingeniería. Para reflejar las necesidades de la Facultad de Educación, que presumiblemente son menos exigentes en términos de calidad de red que la Facultad de Ingeniería, se han generado los datos MOS de tal manera que reflejen esta diferencia. Este ajuste ha sido el resultado de una investigación adicional sobre las necesidades específicas y expectativas de los usuarios en estas dos facultades. Además, se espera que será validado una vez se cuente con la aprobación del comité de ética y se lleven a cabo las encuestas planificadas. De esta manera, se han generado los datos MOS simulados, que, aunque no son un sustituto directo de las encuestas de usuario, representan una estimación informada y basada en la investigación de las puntuaciones MOS que se podrían haber obtenido a través de dichas encuestas. Una vez que se han recopilado todos los datos de throughput correspondientes a cada sesión de usuario junto con sus respectivas puntuaciones MOS simuladas, se puede proceder a desarrollar el modelo. De nuevo destacar que las puntuaciones MOS son simuladas, y en consecuencia, una vez que se puedan lanzar las encuestas a los usuarios, el modelo se entrenará con las MOS obtenidas directamente de los usuarios para obtener un modelo aún más preciso y representativo de la experiencia real del usuario. No obstante, para los propósitos de este estudio, las puntuaciones MOS simuladas permiten extraer conclusiones bastante significativas. 62 7.1.1.2. Preparación del entorno de ejecución Como ya se ha establecido en el apartado 5.3.1, se va a utilizar la plataforma Google Colab para la realización del modelo. Google Colab es una plataforma basada en la nube que ofrece un entorno de desarrollo gratuito y colaborativo para ejecutar código Python, incluyendo la implementación y evaluación de modelos de ML. Para ello, se han seguido los siguientes pasos: 1. Acceso a Google Colab: Para comenzar, se accede a la plataforma Google Colab a través de un navegador web. El sitio web oficial de Google Colab se encuentra en https://colab.research.google.com/. Este acceso permite crear y abrir cuadernos de Colab, que son documentos interactivos donde se desarrolla y ejecuta el código. 2. Creación de un nuevo cuaderno: En Google Colab, se ha creado un nuevo cuaderno seleccionando la opción "Nuevo cuaderno" en la página de inicio o a través del menú "Archivo". También existe la opción de abrir cuadernos existentes desde Google Drive o desde repositorios en GitHub. 3. Configuración del entorno de ejecución: Una vez dentro del cuaderno, se ha configurado el entorno de ejecución. En la barra de herramientas superior, se encuentra un menú desplegable llamado "Entorno de ejecución". En esta sección, se han realizado ajustes como la selección de la versión de Python, la asignación de recursos de procesamiento (CPU o GPU) y la cantidad de memoria RAM destinada al entorno. o En particular, se ha seleccionado una CPU para el entrenamiento del modelo de ML, ya que el conjunto de datos es relativamente pequeño y no requiere una gran cantidad de recursos de computación para su entrenamiento. 4. Importación de bibliotecas: En un principio, se han importado las bibliotecas de Python que más se van a utilizar para el proyecto: o scikit-learn: scikit-learn es una biblioteca de que ofrece una amplia gama de algoritmos y herramientas para tareas de clasificación, regresión, agrupación, reducción de dimensionalidad y más. En este caso, scikit-learn proporciona una implementación robusta y optimizada del algoritmo de regresión lineal, lo que permite realizar fácilmente el entrenamiento y la predicción utilizando modelos de regresión lineal. o numpy: numpy es una biblioteca fundamental para el cálculo numérico en Python. Proporciona un soporte eficiente para matrices multidimensionales y funciones matemáticas que permiten realizar operaciones numéricas de manera rápida y eficiente. En este caso, numpy se utiliza para manipular y procesar los datos necesarios para el entrenamiento del modelo. o pandas: pandas es una biblioteca de análisis de datos que proporciona estructuras de datos flexibles y herramientas para la manipulación y análisis de conjuntos de datos. Ofrece estructuras de datos como DataFrame, que es una tabla bidimensional con etiquetas en columnas y filas, similar a una hoja de cálculo. En este caso, pandas se utiliza para cargar y manipular los datos de entrada. Se utiliza para leer los datos desde archivos. o matplotlib: matplotlib es una biblioteca de visualización de datos en Python que proporciona una interfaz flexible para la generación de una amplia variedad de gráficos y diagramas. matplotlib se integra bien con otras bibliotecas de la pila científica de Python, como numpy y pandas, lo que la convierte en la opción 63 natural para la visualización de datos en muchos análisis y flujos de trabajo de ML. 7.1.1.3. Preparación de los datos En este paso, se lleva a cabo un conjunto de tareas para garantizar la calidad, coherencia y adecuación de los datos recopilados antes de utilizarlos en el análisis y entrenamiento del modelo. La preparación de los datos implica varios procesos, que incluyen la limpieza, transformación y procesamiento de los datos recopilados. El objetivo principal es asegurarse de que los datos sean consistentes, completos y estén en el formato adecuado para su uso en el modelo de correlación. En este caso, el modelo se entrenará utilizando los datos del throughput medio de cada sesión junto con su valoración MOS correspondiente. Antes de comenzar a desarrollar el modelo, es crucial obtener información relevante sobre los datos disponibles para determinar su consistencia y características. Con ese fin, se han recopilado una serie de estadísticas descriptivas, que incluyen el valor más común, el valor máximo, la media y la desviación estándar para ambos conjuntos de datos. Estos datos proporcionan información valiosa sobre la distribución y tendencia central de los valores de throughput. El valor más común nos indica cuál es el valor dominante o más frecuente en los conjuntos de datos. La media da una idea del valor promedio o central, mientras que la desviación estándar indica la dispersión o variabilidad de los datos alrededor de la media. A continuación, se indican los valores obtenidos en ambos conjuntos de datos: Valor más común Valor máximo Media Desviación estándar Facultad de Ingeniería 0,1 2.9413,4 134,286 811,543 Facultad de Educación 0,1 10.269,7 199,980 591,388 Tabla 9: Estadísticas descriptivas Al analizar los datos proporcionados, se observa que tanto en la Facultad de Ingeniería como en la Facultad de Educación existen valores extremos con una desviación estándar considerablemente grande. Esta alta variabilidad en los datos puede plantear desafíos al desarrollar el modelo, ya que los datos abarcan un rango muy amplio. Para obtener resultados más precisos al entrenar el modelo, es importante realizar una limpieza de los datos. Esto implica identificar y tratar los valores atípicos o extremos. Para ello, se implementa un método de eliminación de outliers 1 basado en la desviación estándar. Este método consta de los siguientes pasos: • Calcular la media y la desviación estándar de la columna que contiene los datos. 1 Un outlier es un valor atípico que difiere significativamente de la tendencia general de los datos y puede afectar la precisión de los modelos de Machine Learning. 64 • Definir un umbral multiplicando la desviación estándar por un factor para determinar el rango dentro del cual los valores se considerarán no outliers. • Filtrar los datos del DataSet manteniendo solo aquellos valores que estén dentro del rango definido. A continuación, se detalla el código utilizado para la realización de este proceso: Como se puede observar en el fragmento de código, se define un umbral para determinar el rango dentro del cual los valores se considerarán no outliers. A continuación, se realiza un proceso de filtrado en el DataFrame original seleccionando únicamente aquellos valores de la columna "Avg. Session Throughput (Kbps)" que caen dentro del rango determinado por la media más/menos el umbral multiplicado por la desviación estándar. Esto implica eliminar los valores atípicos del conjunto de datos, lo que resulta en un DataFrame filtrado y más consistente para su posterior entrenamiento. 7.1.1.4. Análisis exploratorio El análisis exploratorio de datos es una etapa fundamental en el proceso de ML. Consiste en examinar y comprender los datos antes de aplicar cualquier modelo o algoritmo. Su objetivo principal es obtener información y conocimientos clave sobre los datos, identificar patrones, relaciones y características relevantes. Como se ha mencionado anteriormente, las columnas que se utilizan para la realización del modelo son: "Avg. Session Throughput (Kbps)" y “MOS” en ambos conjuntos de datos. Por lo tanto, es crucial comprender la relación entre estas dos variables para obtener una comprensión más profunda de su naturaleza y lograr un modelo más preciso. Para establecer la relación entre estas dos variables, se emplean diferentes métodos. En primer lugar, se realiza un mapa de calor que muestra la correlación entre "Avg. Session Throughput (Kbps)" y "MOS". Posteriormente, se utiliza un gráfico de dispersión para visualizar la relación entre ambas variables. A continuación, se muestran los mapas de calor obtenidos de la Facultad de Ingeniería y Educación, respectivamente, que indican la correlación entre las dos variables: media = data['Avg. Session Throughput (Kbps)'].mean() desviacion_estandar = data ['Avg. Session Throughput (Kbps)'].std() umbral = 3 data_filt = data[(data ['Avg. Session Throughput (Kbps)'] >= media - umbral * desviacion_estandar) & (data_ingenieria['Avg. Session Throughput (Kbps)'] <= media 65 Ilustración 10: Mapa de calor de la correlación entre el throughput y el MOS en la Facultad de Ingeniería Tal y como se puede ver en la Ilustración 10 y Ilustración 11, se obtiene un coeficiente de correlación de 0.67 y 0.62 en el conjunto de datos de la Facultad de Ingeniería y Educación, respectivamente, que indican en los dos casos una correlación positiva moderada entre el throughput y el MOS. Esto significa que existe una tendencia general de que a medida que el throughput promedio de una sesión aumenta, la valoración MOS también tiende a ser mayor. Sin embargo, es importante destacar que la correlación no implica causalidad, es decir, no se puede afirmar que el aumento del throughput sea la causa directa de una mayor valoración MOS. Ilustración 11: Mapa de calor de la correlacion entre el throughput y el MOS en la Facultad de Educación 66 Además, es relevante tener en cuenta que una correlación de esta magnitud indica que la relación entre estas dos variables no es perfecta y puede existir cierta variabilidad en los datos. Otros factores también pueden influir en la valoración MOS (factores de influencia) y es posible que haya casos en los que el throughput sea alto pero la valoración MOS sea baja, o viceversa. 7.1.1.5. Desarrollo del modelo: regresión lineal Una vez se ha adquirido un mayor conocimiento sobre las relaciones entre las variables en las dos facultades y se han observado las diferencias existentes, se puede construir un modelo de ML que capture de manera óptima la relación entre estas variables. El objetivo es utilizar este modelo para predecir la puntuación de los usuarios en función del throughput de una red WiFi. En otras palabras, el modelo permitirá tener una estimación de la experiencia de los usuarios basada en los datos objetivos de la red (throughput en este caso). Este enfoque brinda la ventaja de utilizar datos históricos recopilados de las valoraciones de los usuarios y el rendimiento del throughput para entrenar el modelo. Una vez entrenado, el modelo podrá generalizar y hacer predicciones precisas sobre la calidad de la experiencia de los usuarios en función del throughput medido. Esto resulta útil para la gestión y mejora de redes WiFi, ya que permite tomar decisiones informadas para optimizar el rendimiento y satisfacer las necesidades de los usuarios. Siguiendo la decisión tomada en el análisis de alternativas, se ha optado por utilizar la regresión lineal como modelo para este propósito. La regresión lineal busca establecer una relación lineal entre las variables independientes y la variable dependiente, en este caso, la puntuación MOS que puede tomar continuos del 1 al 5. El objetivo es entrenar este modelo para identificar las relaciones entre las variables y predecir la puntuación MOS correspondiente a cada valor de throughput. A través del análisis de la relación lineal, se buscará encontrar una ecuación que permita estimar la puntuación MOS en función del throughput. La regresión lineal es una opción adecuada debido a su capacidad para modelar relaciones lineales entre variables y realizar predicciones basadas en esas relaciones. Al entrenar este modelo con los datos disponibles, se espera que aprenda los patrones y las características que relacionan el throughput con la puntuación MOS. La regresión lineal permite establecer una ecuación que estima la puntuación MOS en función del throughput, lo que proporciona una forma de entender la relación entre estas variables y predecir los resultados en base a nuevos valores de throughput. En comparación con técnicas de clasificación, que usa clases predefinidas, los modelos de regresión proporcionan una mayor granularidad del resultado previsto y, por lo tanto, permiten cubrir una gama más amplia de posibles casos de uso. Una vez que el modelo de regresión lineal haya sido entrenado y validado, estará preparado para predecir nuevas puntuaciones MOS en función de los valores de throughput. Esto proporcionará una herramienta útil para estimar la satisfacción de los usuarios en función de las mediciones de throughput, lo que permitirá tomar decisiones informadas y realizar mejoras pertinentes para brindar una experiencia óptima a los usuarios. A continuación, se describen los pasos llevados a cabo para la construcción del modelo de regresión lineal. 73 Dicho esto, lo crucial es la identificación de esta relación positiva entre el throughput y el MOS, donde se evidencia que a medida que el throughput mejora, las puntuaciones MOS tienden a incrementarse. Este patrón respalda una lógica intuitiva: a medida que la calidad de la red se mejora, la satisfacción de los usuarios tiende a incrementarse. Además, es relevante resaltar las diferencias significativas que emergen entre las dos facultades en estudio. A continuación, se muestran dos gráficos de dispersión que comparan las dos facultades, tanto para los valores reales y los predichos. Ilustración 16: Diferencias entre las dos facultades: valores reales y predichos Como se exploró anteriormente, existen múltiples factores que influyen en cómo los usuarios califican su experiencia con la red. Esto se puede observar en la Ilustración 16, donde se observa que las calificaciones asignadas por los usuarios de la Facultad de Educación tienden a ser un poco superiores, a pesar de tener niveles de throughput menores, en comparación con la Facultad de Ingeniería. Esta distinción también se refleja en las predicciones generadas por el modelo, lo que sugiere que el modelo ha capturado eficazmente estas diferencias. Como se indicó anteriormente, estas variaciones pueden deberse a una variedad de razones. No 74 obstante, una de las más convincentes podría ser que los estudiantes de ingeniería requieren una mayor calidad de red debido a la naturaleza específica de las actividades que desarrollan. Por otro lado, al analizar y predecir las calificaciones de los usuarios en ambas facultades, el modelo puede demostrar su capacidad para capturar las diferencias en las experiencias de red y proporcionar predicciones y relaciones precisas. La realización del modelo en diferentes contextos, como distintas facultades universitarias, ayuda a evaluar su generalización y capacidad para adaptarse a diversas situaciones. En conclusión, en términos generales, de los resultados obtenidos en la evaluación del modelo de regresión lineal, se podría decir que el modelo tiene un rendimiento moderado en la predicción. A pesar de ello, es cierto que se ha logrado identificar una correlación bastante pronunciada entre ambas variables en cada una de las facultades. No obstante, la limitada precisión del modelo puede atribuirse a una variedad de factores: 1. Insuficiente cantidad de datos: el conjunto de datos utilizado para entrenar y evaluar el modelo no es lo suficientemente grande o representativo de todas las clases existentes. Si hay una falta de diversidad en los datos o una cantidad limitada de muestras, el modelo puede tener dificultades para capturar la variabilidad y generalizar correctamente. 2. Características insuficientes: Es importante considerar si las características utilizadas para entrenar el modelo (en este caso, el throughput) son suficientes para capturar toda la información relevante que influye en las puntuaciones MOS. Puede haber otras variables o características que sean importantes y que no se estén teniendo en cuenta en el modelo actual. 3. Relación no lineal: El modelo de Regresión Lineal asume relaciones lineales entre las características y las etiquetas. Sin embargo, en el caso de la correlación entre el throughput y las puntuaciones MOS, es posible que existan relaciones no lineales o complejas que el modelo no pueda capturar adecuadamente. En este caso, podría ser necesario explorar modelos más sofisticados como las redes neuronales. Por lo tanto, para mejorar la precisión del modelo de regresión lineal y abordar posibles problemas de baja precisión, se pueden considerar varias estrategias. En primer lugar, recopilar más datos de diferentes fuentes o contextos puede enriquecer el conjunto de entrenamiento y permitir al modelo capturar mejor la variabilidad. Además, explorar características adicionales relacionadas con la calidad de la red puede proporcionar información adicional para mejorar las predicciones. También se pueden probar diferentes modelos y técnicas más complejas, que podrían ser más adecuados para capturar relaciones complejas en los datos. 7.1.1.7. Desarrollo del modelo: Red neuronal feedforward En base a las deducciones obtenidas a través de la implementación del modelo de regresión lineal, se ha determinado que, a pesar de su simplicidad, este modelo puede presentar limitaciones al explorar relaciones y efectuar predicciones complejas. Por lo tanto, siguiendo la decisión que se adoptó en la sección 6.2, se procederá con la implementación del algoritmo de red neuronal feedforward. Esta técnica, debido a su inherente complejidad, es notablemente más competente en discernir y modelar relaciones intrincadas de manera precisa y eficaz. 75 En consecuencia, se procederá a la implementación de este modelo para determinar la relación entre el throughput y el MOS en los dos escenarios de red propuestos. A partir de los resultados obtenidos, se realizará una comparación con el modelo de regresión lineal previamente desarrollado. Dicha comparativa permitirá ilustrar las potenciales ventajas y desventajas que ambos modelos podrían presentar en este contexto en particular. Es Importante destacar que, en este caso, a diferencia de la regresión lineal, se ha decidido no eliminar los valores extremos o atípicos durante la implementación del modelo. La intención es reflejar una correlación lo más realista posible, la cual se ha observado que tiene una tendencia logarítmica en la realidad. Se pretende entrenar el modelo con todos los valores existentes, permitiéndole así aprender que el MOS tiende a estabilizarse con valores de throughput muy altos. Esta decisión se fundamenta en la necesidad de capturar completamente las dinámicas inherentes a los datos y de permitir que el modelo aprenda y se adapte a estas dinámicas de la forma más precisa posible. Esta decisión se toma en el caso de la red neuronal debido a su habilidad para aprender y modelar relaciones no lineales y complejas, a diferencia de los modelos más simples como la regresión lineal. Esta capacidad de las redes neuronales las hace más adecuadas para manejar datos en los que existen relaciones no lineales y complejas, como es el caso en esta situación. A continuación, se describen los pasos llevados a cabo para la construcción del modelo de la red neuronal feedforward. División de datos Evitando la redundancia en la descripción de los procesos, la división de los datos se llevará a cabo de la misma manera que se efectuó para el modelo de regresión lineal, lo cual se puede revisar en el apartado 7.1.1.5. Construcción del modelo La construcción de un modelo en redes neuronales se basa en la estructura y el funcionamiento del cerebro humano, específicamente en las neuronas y las conexiones que se encuentran en él. Una red neuronal artificial es un modelo computacional inspirado en este sistema biológico, diseñado para procesar información y realizar tareas de aprendizaje y predicción. Se elige una estructura de red neuronal bastante sencilla, ya que los datos disponibles son de tamaño reducido y el problema a solucionar es bastante directo. Esta elección favorece la eficiencia y la optimización del proceso de aprendizaje de la red. A continuación, se detalla el proceso de construcción del modelo: modelo = Sequential() modelo.add(Dense(64, input_dim=1, activation='relu')) modelo.add(Dense(32, activation='relu')) modelo.add(Dense(1)) 1. Sequential(): Esta línea de código crea un modelo secuencial (feedforward), que es la forma más común de construir una red neuronal. Un modelo secuencial es una pila 76 lineal de capas donde la salida de una capa se convierte en la entrada de la siguiente capa. 2. modelo.add(Dense(64, input_dim=1, activation='relu')): Aquí se añade a la red neuronal una capa densa (fully-connected) con 64 neuronas. Esta capa se conecta a la capa de entrada, la cual espera una única dimensión de entrada. Se utiliza la función de activación 'relu' (Rectified Linear Unit), la cual es muy usada en redes neuronales debido a sus propiedades de introducir no linealidades y su eficiencia computacional. 3. modelo1.add(Dense(32, activation='relu')): Esta línea de código añade otra capa densa con 32 neuronas a la red neuronal. Se sigue utilizando la función de activación 'relu'. Al no especificar input_dim, esta capa se conecta automáticamente a la capa anterior, recibiendo como entrada sus 64 salidas. 4. modelo.add(Dense(1)): se añade la capa de salida con una sola neurona. Esta capa no tiene función de activación ya que se trata de un problema de regresión donde se busca predecir un valor numérico continuo (MOS). Compilación del modelo La compilación en redes neuronales se refiere al paso en el que se configuran los aspectos adicionales del modelo antes de iniciar el proceso de entrenamiento. En este paso, se especifica el optimizador, la función de pérdida y las métricas de evaluación que se utilizarán durante el entrenamiento y la evaluación del modelo. 1. Optimizador: El optimizador es un algoritmo que se encarga de ajustar los pesos y los biases de las neuronas durante el entrenamiento de la red neuronal. El objetivo del optimizador es minimizar la función de pérdida o de error, que cuantifica la diferencia entre las predicciones del modelo y los valores reales del objetivo. En este caso, se utiliza el optimizador Adam, que es un optimizador popular y eficiente que se adapta dinámicamente a la tasa de aprendizaje durante el entrenamiento. 2. Función de pérdida: La función de pérdida o de error es una medida que cuantifica la discrepancia entre las predicciones del modelo y los valores reales del objetivo. En este caso, se utiliza la función de pérdida 'mean_squared_error', que calcula el error cuadrático medio entre las predicciones y los valores reales. El objetivo es minimizar esta función de pérdida durante el entrenamiento para que las predicciones del modelo se acerquen lo más posible a los valores reales. 3. Métricas de evaluación: Las métricas de evaluación son medidas adicionales que se utilizan para evaluar el rendimiento del modelo durante el entrenamiento y la evaluación. En este caso, se utiliza la métrica 'accuracy' o precisión para evaluar la precisión del modelo en la clasificación de datos. Sin embargo, en el caso de la regresión, la precisión no es relevante, por lo que esta métrica puede no ser significativa en el contexto específico de la regresión. A continuación, se presenta el código utilizado para la compilación del modelo: modelo.compile(optimizer=Adam(learning_rate=0.001), loss= 'mean_squared_error',metrics = 'MAE') 77 En esta línea de código, se lleva a cabo la compilación del modelo neuronal. Se especifica el optimizador utilizando el algoritmo Adam con una tasa de aprendizaje de 0.001. La función de pérdida se establece como 'mean_squared_error', que es una medida comúnmente utilizada para problemas de regresión donde se busca minimizar el error cuadrático medio entre las predicciones del modelo y los valores reales. Además, se elige la métrica MAE como una medida adicional para evaluar el modelo y complementar la evaluación basada en la pérdida de error cuadrático medio. Entrenamiento del modelo El entrenamiento en un modelo de red neuronal consiste en ajustar los pesos y los “biases” de las neuronas para que el modelo aprenda a realizar predicciones precisas. Durante el entrenamiento, para cada lote de datos, se realiza una pasada hacia adelante en la red neuronal para obtener las predicciones, se calcula la función de pérdida para medir la discrepancia entre las predicciones y los valores objetivo, y luego se realiza una pasada hacia atrás utilizando el algoritmo de retropropagación (backpropagation) del error para actualizar los pesos y los “biases” de las neuronas. Este proceso se repite para cada época hasta que se alcanza el número especificado de épocas. El objetivo del entrenamiento es encontrar los mejores valores para los pesos y los “biases” de la red neuronal que minimicen la función de pérdida y permitan hacer predicciones precisas sobre datos no vistos. A medida que el modelo se entrena, se espera que vaya mejorando su rendimiento y su capacidad para generalizar a partir de los datos de entrenamiento hacia datos nuevos. A continuación, se muestra el código utilizado para este propósito: modelo.fit(X_entrenamiento, y_entrenamiento, epochs=100, batch_size=32) Durante este proceso, el parámetro epochs se establece en 100, lo que significa que el modelo realizará 100 pasadas completas a través de todo el conjunto de datos de entrenamiento. Cada pasada consta de una fase de propagación hacia adelante (forward pass) y una fase de retropropagación del error (backward pass), en la que se ajustan los pesos y los sesgos de las neuronas. El parámetro batch_size se utiliza para dividir el conjunto de datos de entrenamiento en lotes más pequeños. En lugar de procesar todo el conjunto de datos de entrenamiento en una sola vez, los lotes permiten que el modelo ajuste sus parámetros de manera más eficiente. En este caso, se ha establecido un tamaño de lote de 32, lo que significa que se toman 32 ejemplos de entrenamiento a la vez para calcular las actualizaciones de los pesos. Posteriormente, los pesos se actualizan después de cada lote, en lugar de después de cada ejemplo individual, lo que agiliza el proceso de entrenamiento. Por último, una vez que el modelo ha sido entrenado, se puede utilizar para hacer predicciones en nuevos datos. 78 7.1.1.8. Evaluación del modelo: Red neuronal feedforward Para evaluar la precisión del modelo de red neuronal, se han utilizado dos métricas de error comúnmente adoptadas en el campo del ML para problemas de regresión: el Error Cuadrático Medio y el Error Absoluto Medio. Así, podrá compararse con mayor facilidad con el modelo de regresión lineal. Los resultados de las métricas del modelo realizado son los siguientes: Loss (MSE) MAE Facultad de Ingeniería 0,210 0,318 Facultad de educación 0.226 0.370 Tabla 12: Métricas para la evaluación del modelo Para la Facultad de Ingeniería, los valores obtenidos fueron un MSE de 0,210 y un MAE de 0,318, mientras que, para la Facultad de Educación, el MSE y el MAE fueron de 0,226 y 0,370 respectivamente. Estos resultados son mejores a los obtenidos con el modelo de regresión lineal. Esto es esperable ya que las redes neuronales tienen a aprender mejor las relaciones complejas entre las variables. Ahora, al igual que el caso anterior, se construyen una serie de gráficos de dispersión, los cuales ofrecen una representación visual de las relaciones entre las variables estudiadas (throughput y MOS) en ambas facultades (reales y predichas), así como de las discrepancias identificadas entre ellas. Estos gráficos proporcionan una perspectiva intuitiva y accesible de los resultados analíticos obtenidos. A continuación, se muestran los gráficos generados. • Facultad de Ingeniería: Ilustración 17 Throughput vs. MOS: predicciones 79 Ilustración 18: Throughput vs. MOS: valores reales • Facultad de educación: Ilustración 19: Throughput vs. MOS: predicciones Ilustración 20: Thrpughput vs. MOS: valores reales Comparando estos gráficos con los obtenidos para el modelo de regresión lineal, sí que se observan diferencias en los gráficos obtenidos. 80 Reiterando algunas observaciones realizadas en el caso del modelo anterior, aquí también se observa una correlación positiva entre estas dos variables. Sin embargo, es importante tener en cuenta que una red neuronal ha tenido la capacidad de identificar y aprender patrones más complejos en los datos. En este caso específico, la red neuronal ha podido capturar patrones logarítmicos, como se puede apreciar en la Ilustración 17 y Ilustración 19. Esto significa que el modelo ha aprendido una relación no lineal entre las variables de throughput y MOS. A medida que el valor de throughput sigue subiendo, a partir de ciertos valores, el valor de MOS se estanca en el valor máximo. Esto es una característica lógica y representa un comportamiento deseado, ya que indica que incluso cuando el rendimiento sigue mejorando, el puntaje de calidad percibida ya ha alcanzado su límite máximo. La capacidad de capturar patrones logarítmicos es una de las ventajas de las redes neuronales en comparación con modelos lineales más simples. Estas redes son capaces de aprender relaciones no lineales en los datos y capturar efectos más complejos. Al entrenar el modelo con valores extremos, se le permite aprender y generalizar estos patrones logarítmicos en el conjunto de datos. En este caso, también es conveniente analizar las discrepancias entre las dos facultades. A continuación, se muestran dos gráficos de dispersión que comparan las dos facultades, tanto para los valores reales y los predichos. 81 Ilustración 21: Diferencias entre las dos facultades: valores reales y predichos Como se puede apreciar en los gráficos, se detectan las mismas discrepancias en las puntuaciones del MOS entre las dos facultades. Esta diferencia se atribuye principalmente a las expectativas más elevadas de los estudiantes de ingeniería respecto a la calidad de la red, las cuales están vinculadas a la naturaleza de sus actividades diarias. 7.2. Análisis de resultados Por último, se realiza un análisis de los resultados obtenidos a partir de la correlación de QoS/QoE y de las puntuaciones MOS. Se presentan los hallazgos significativos y se extraen conclusiones relevantes en relación con la satisfacción de los usuarios y los indicadores de calidad identificados. Se discuten posibles implicaciones y se resaltan los aspectos más relevantes para la gestión de la QoE en los entornos universitarios estudiados. El propósito principal de este proyecto era establecer una correlación entre un parámetro objetivo y las calificaciones MOS derivadas de encuestas a usuarios. Sin embargo, debido a ciertas complicaciones en relación con temas éticos en la realización de estas encuestas, no se pudieron llevar a cabo. Por lo tanto, como se explicó previamente, con base en 82 varios estudios que presentaban datos de throughput y MOS, se tomó la decisión de simular los datos MOS de la forma más realista posible. Este enfoque permitió desarrollar el modelo tal como se ha descrito. Es importante tener en cuenta la aleatoriedad inherente debido a los diversos factores de influencia (detallados en la sección 5.5) que pueden afectar la experiencia de los usuarios. Incluso si la calidad de la red en términos de throughput es alta, la experiencia del usuario puede no ser necesariamente satisfactoria, subrayando la complejidad y la naturaleza de las percepciones de los usuarios respecto a la calidad de la red. No obstante, se ha establecido una correlación bastante sólida en ambos escenarios de red entre el throughput y las puntuaciones MOS simuladas. Esto concluye que, en general, a medida que el throughput aumenta, las puntuaciones MOS tienden a mejorar. Este patrón se modeló inicialmente utilizando el algoritmo de regresión lineal, que permite identificar de forma efectiva relaciones lineales entre la variable independiente (throughput) y la variable objetivo (MOS). Posteriormente, este patrón fue replicado con el algoritmo de red neuronal feedforward. A diferencia de la regresión lineal, las redes neuronales feedforward tienen la capacidad de capturar y modelar relaciones más complejas, gracias a su estructura de múltiples capas y nodos interconectados. La realización de este modelo permite predecir la experiencia de los usuarios únicamente a partir del dato objetivo, el throughput. De esta forma, se pueden tomar decisiones más informadas y adecuadas para mejorar la calidad de la red. Como se mencionó anteriormente, en el caso de la regresión lineal se captura una relación lineal entre el MOSy el throughput. Esto no es totalmente incorrecto, ya que, dentro de un rango de valores, se puede considerar que la relación es lineal, es decir, a medida que el throughput aumenta, el MOS también aumenta de manera proporcional. Sin embargo, al utilizar una red neuronal feedforward, se ha logrado obtener una relación más logarítmica entre las variables. La utilización de una red neuronal feedforward ha permitido obtener un modelo con un entrenamiento más preciso y una mayor capacidad para aprender relaciones complejas. Esto se debe a que las redes neuronales tienen la capacidad de capturar patrones más allá de las relaciones lineales simples. El entrenamiento de la red neuronal con valores extremos ha sido clave para capturar esta relación logarítmica. Al proporcionar al modelo datos con valores más altos de throughput, se le ha permitido aprender y generalizar los patrones logarítmicos presentes en el conjunto de datos. Sin embargo, es evidente que siempre hay margen para mejorar la precisión del modelo y reducir los errores. Una forma prometedora de validar y mejorar el modelo en el futuro será mediante la implementación de encuestas directas a los usuarios. La recopilación de datos personales y detalles específicos sobre la red utilizada a través de encuestas permitirá obtener una comprensión más profunda de la tipología de usuarios en cada facultad y revelar diferencias en sus expectativas, usos y otros factores relevantes. Esto será fundamental para interpretar de forma más precisa la correlación entre la QoS y la QoE. Al tener acceso a un conjunto de datos relacionados con la tipología de usuarios y su puntuación respectiva en cuanto a la calidad de la red, será posible elaborar soluciones más específicas y orientadas a mejorar la experiencia del usuario. 89 9. ANÁLISIS DE RIESGOS El análisis de riesgos tiene como objetivo aumentar la probabilidad y el impacto de los eventos positivos y disminuir la probabilidad e impacto de los eventos negativos que puedan afectar el desarrollo y los resultados del proyecto. A continuación, se presentan los posibles riesgos para este proyecto junto con las estrategias de mitigación para cada uno. 9.1. Demoras (A) En el desarrollo de cualquier proyecto, pueden surgir retrasos imprevistos que amenacen la finalización del mismo en los plazos establecidos inicialmente. Por ende, es fundamental implementar una planificación estratégica donde se delineen de manera precisa las tareas a llevar a cabo, así como las fechas estimadas de finalización para cada una de ellas. La probabilidad de que surjan tales retrasos en este proyecto es relativamente baja, gracias a la guía continúa proporcionada por la directora del proyecto. Esta supervisión constante asegura que las tareas se identifiquen y se sigan correctamente, permitiendo un seguimiento regular de su progreso. Además, es importante señalar que el alcance de este TFM no es particularmente extenso, lo que disminuye aún más la posibilidad de que surjan imprevistos significativos que puedan impactar el progreso del proyecto de manera considerable. 9.2. Fallo tecnológico (B) El ordenador es una herramienta esencial en la elaboración de la solución propuesta para este TFM. Todo el desarrollo del modelo, desde su concepción hasta su implementación y pruebas, se realiza utilizando esta herramienta tecnológica. A pesar de que los ordenadores generalmente pasan por rigurosos controles de calidad y cumplen con estándares elevados, la probabilidad de una falla o mal funcionamiento del hardware no puede descartarse completamente, catalogándola como de riesgo medio. Sin embargo, el impacto de una potencial falla del ordenador se ve significativamente mitigado gracias al uso de herramientas basadas en la nube, como Google Colaboratory (Colab). Este enfoque de trabajo en la nube ofrece un nivel adicional de seguridad y conveniencia. Cualquier trabajo realizado se guarda automáticamente en la nube, y, en caso de un fallo del ordenador, se puede acceder a él y continuar trabajando desde cualquier otro dispositivo con acceso a Internet. Esto no solo reduce el riesgo de pérdida de datos, sino que también minimiza la interrupción del flujo de trabajo, ya que se puede retomar rápidamente en otro dispositivo. 9.3. Demoras en la aprobación de encuestas (C) En cualquier proyecto que involucre la recopilación de datos mediante encuestas, existe el riesgo de demoras causadas por la necesidad de obtener aprobación de comités éticos u otras entidades de supervisión. Estas demoras pueden alterar el cronograma del proyecto, causando retrasos significativos en la ejecución y finalización del mismo. 90 En el contexto de este TFM este riesgo se materializó en la fase de recopilación de datos. Como se ha comentado a lo largo del documento, la aprobación necesaria para llevar a cabo las encuestas para evaluar la QoE no se obtuvo a tiempo. El impacto es medio, ya que se logró implementar el modelo realizando una simulación de los resultados del MOS. Para mitigar este tipo de riesgo, es fundamental anticipar y planificar potenciales demoras en la fase de planificación del proyecto. Esto puede incluir iniciar el proceso de solicitud de aprobación con suficiente antelación, tener un plan B para la recopilación y análisis de datos en caso de retrasos, y mantener una comunicación fluida con todas las partes externas involucradas en el proyecto. Además, en el caso de que se produzcan retrasos inesperados, es útil contar con estrategias de contingencia, como la simulación de datos, para garantizar que el proyecto pueda continuar avanzando a pesar de estos obstáculos. 9.4. Falta de datos suficientes (D) El riesgo de falta de datos suficientes se refiere a la posibilidad de no poder recopilar una cantidad adecuada de datos de QoS y QoE que serían necesarios para entrenar de manera efectiva los modelos de ML. Este riesgo es particularmente relevante en proyectos basados en ML, ya que la calidad y cantidad de datos disponibles para el entrenamiento puede tener un impacto directo en la precisión y eficacia del modelo resultante. La probabilidad de ocurrencia de este riesgo puede ser moderada, ya que a menudo depende de factores que pueden estar fuera del control del equipo del proyecto, como la disponibilidad de fuentes de datos o la disposición de los usuarios a participar en las encuestas. El impacto de la falta de datos suficientes puede ser significativo. Puede retrasar el desarrollo del proyecto, ya que se tendría que buscar y recopilar datos adicionales, y puede comprometer la calidad de los resultados, ya que un modelo de ML entrenado con datos insuficientes puede tener una precisión y eficacia más baja. 9.5. Matriz probabilidad – impacto La gestión efectiva de los riesgos se lleva a cabo a través de una herramienta estratégica conocida como la matriz de probabilidad-impacto. En esta matriz, se catalogan y visualizan de manera clara todos los riesgos previamente mencionados. Esta matriz facilita la comprensión de los riesgos, permite evaluar su potencial efecto en el proyecto, y proporciona una base sólida para establecer prioridades en la mitigación de riesgos. IMPACTO PROBABILIDAD BAJO 0,2 MEDIO 0,5 ALTO 0,8 BAJO 0,2 Bajo 0,04 Bajo 0,1 (B) Moderado 0,16 MEDIO 0,5 Bajo 0,1 Moderado 0,25 (A) (D) Alto 0,4 ALTO 0,8 Moderado 0,16 Alto 0,4 (C) Alto 0,64 Tabla 17: Matriz probabilidad-impacto 91 10. CONCLUSIONES El objetivo principal de este proyecto fue desarrollar un modelo que correlacione la QoS y QoE utilizando técnicas de ML en entornos universitarios específicos. Este objetivo no solo ha sido alcanzado, sino que ha aportado una serie de beneficios y avances significativos en el campo de estudio. En primer lugar, a través de este TFM, se ha llevado a cabo un estudio detallado y exhaustivo de los parámetros de QoS y los indicadores de calidad (KQI) que influyen en la percepción de los usuarios de las redes WiFi, específicamente en redes 802.11. La clasificación de estos aspectos y la identificación de los KQI más relevantes representan un avance importante en la comprensión y la gestión de la QoE. Además, la implementación de técnicas de ML para correlacionar la QoS y la QoE ha demostrado ser una herramienta eficaz y poderosa. Esta aplicación innovadora de ML en la gestión de la QoE podría tener un impacto significativo en la mejora de la satisfacción del usuario en entornos universitarios y más allá. Se tiene previsto realizar encuestas directas a los usuarios en un futuro próximo para recopilar datos reales y validar los resultados de la simulación. Estas encuestas permitirán obtener información más precisa y detallada sobre las experiencias de los usuarios y su percepción de la calidad de la red. La validación de los resultados de la simulación con datos reales será fundamental para mejorar y ajustar el modelo, asegurando así su precisión y utilidad en la evaluación y mejora de la calidad de la red. En conclusión, este TFM no solo ha alcanzado sus objetivos, sino que también ha contribuido a avances significativos en la correlación de la QoS y la QoE en redes 802.11 utilizando técnicas de ML. Los resultados obtenidos pueden servir como base para futuras investigaciones y como recurso valioso para mejorar la QoE en entornos universitarios u otros entornos. Aunque se han obtenido resultados prometedores, se reconoce la necesidad de continuar con la investigación y el desarrollo en este campo. Esto incluye la exploración de más técnicas de ML, la recopilación y análisis de más datos y la consideración de más factores que pueden influir en la QoS y la QoE. Con estos esfuerzos continuos, es posible que se pueda mejorar aún más la precisión y la eficacia del modelo y profundizar la comprensión de la correlación entre la QoS y la QoE. 92 11. BIBLIOGRAFÍA [1] «Machine learning. Tipos, modelos, técnicas y usos - IAT». https://iat.es/tecnologias/inteligencia-artificial/machine-learning/ (accedido 18 de abril de 2023). [2] «Supervised Machine learning - Javatpoint». https://www.javatpoint.com/supervisedmachine-learning (accedido 18 de abril de 2023). [3] «Unsupervised Machine learning - Javatpoint». https://www.javatpoint.com/unsupervised-machine-learning (accedido 18 de abril de 2023). [4] S. Bhatt, «Reinforcement Learning 101», Medium, 19 de abril de 2019. https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292 (accedido 18 de abril de 2023). [5] «What is Deep Learning and How Does It Works [Updated]», Simplilearn.com. https://www.simplilearn.com/tutorials/deep-learning-tutorial/what-is-deep-learning (accedido 18 de abril de 2023). [6] R. Python, «Jupyter Notebook: An Introduction – Real Python». https://realpython.com/jupyter-notebook-introduction/ (accedido 14 de abril de 2023). [7] «Google Colaboratory». https://colab.research.google.com/?hl=es (accedido 26 de mayo de 2023). [8] «JetBrains DataSpell: el IDE para ingenieros de datos», JetBrains. https://www.jetbrains.com/es-es/dataspell/ (accedido 14 de abril de 2023). [9] «PyCharm: el IDE de Python para desarrolladores profesionales, por JetBrains», JetBrains. https://www.jetbrains.com/es-es/pycharm/ (accedido 14 de abril de 2023). [10] «The Python Tutorial», Python documentation. https://docs.python.org/3/tutorial/index.html (accedido 14 de abril de 2023). [11] «R: What is R?» https://www.r-project.org/about.html (accedido 14 de abril de 2023). [12] «What is Java? | IBM». https://www.ibm.com/topics/java (accedido 14 de abril de 2023). [13] «C++ Tutorial | Learn C++ Programming - javatpoint», www.javatpoint.com. https://www.javatpoint.com/cpp-tutorial (accedido 14 de abril de 2023). [14] «Factors influencing quality of experience of commonly used mobile applications | IEEE Journals & Magazine | IEEE Xplore». https://ieeexplore.ieee.org/document/6178833 (accedido 3 de mayo de 2023). [15] R. Stankiewicz y A. Jajszczyk, «A survey of QoE assurance in converged networks», Comput. Netw., vol. 55, n.o 7, pp. 1459-1473, may 2011, doi: 10.1016/j.comnet.2011.02.004. [16] M. Matulin y Š. Mrvelj, «State-of-the-Practice in Evaluation of Quality of Experience in Real-Life Environments», Promet - TrafficTransportation, vol. 25, n.o 3, pp. 255-263, jun. 2013, doi: 10.7307/ptt.v25i3.1195. (accedido el 30 de abril de 2023) [17] «document.pdf». Accedido: 3 de junio de 2023. [En línea]. Disponible en: https://hal.science/hal-00977812/document [18] D. Tjondronegoro, Mobile Multimedia: User and Technology Perspectives. BoD – Books on Demand, 2012. (accedido el 15 de mayo de 2023) [19] «A Hierarchical Classification Model of QoE Influence Factors | SpringerLink». https://link.springer.com/chapter/10.1007/978-3-319-22572-2_16#Sec5 (accedido 3 de junio de 2023). [20] «P.800 : Methods for subjective determination of transmission quality». https://www.itu.int/rec/T-REC-P.800-199608-I/en (accedido 24 de abril de 2023). [21] «P.910 : Subjective video quality assessment methods for multimedia applications». 93 https://www.itu.int/rec/T-REC-P.910/en (accedido 24 de abril de 2023). [22] K. MALI, «Everything you need to Know about Linear Regression!», Analytics Vidhya, 4 de octubre de 2021. https://www.analyticsvidhya.com/blog/2021/10/everything-you-need-toknow-about-linear-regression/ (accedido 25 de mayo de 2023). [23] S. Swaminathan, «Logistic Regression — Detailed Overview», Medium, 18 de enero de 2019. https://towardsdatascience.com/logistic-regression-detailed-overview-46c4da4303bc (accedido 30 de mayo de 2023). [24] «Qué es Red neuronal feedforward Concepto y definición. Glosario». https://gamco.es/glosario/red-neuronal-feedforward/ (accedido 2 de mayo de 2023). [25] «pt406.pdf». Accedido: 2 de mayo de 2023. [En línea]. Disponible en: https://www.imt.mx/archivos/Publicaciones/PublicacionTecnica/pt406.pdf [26] M. J. M. Ayora, «Clasificación de imágenes usando redes neuronales convolucionales en Python». [27] «tfg_Pau_Agustin_memoria.pdf». Accedido: 2 de mayo de 2023. [En línea]. Disponible en: https://diposit.ub.edu/dspace/bitstream/2445/124249/1/tfg_Pau_Agustin_memoria.pdf [28] «Quality of Service in a Wireless Environment - Cisco». https://www.cisco.com/c/en/us/td/docs/routers/access/wireless/software/guide/QualityOfSe rvice.html#wp1062496 (accedido 5 de junio de 2023). [29] A. Vilaikruad, P. Anchuen, P. Uthansakul, y M. Uthansakul, «Effect of quality of service parameters on quality of experience for YouTube service in mobile networks», jun. 2017, pp. 568-571. doi: 10.1109/ECTICon.2017.8096301. (accedido el 10 de mayo de 2023)