ml_proyecto / DISCUSION.html
carloscortezasto's picture
Commit final limpio
568241b
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Informe Final - Proyecto de Machine Learning</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
margin: 0 auto;
max-width: 900px;
padding: 20px;
color: #333;
background-color: #f9f9f9;
}
h1, h2, h3 {
color: #2c3e50;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
}
h1 {
text-align: center;
font-size: 2.5em;
}
h2 {
font-size: 1.8em;
margin-top: 40px;
}
h3 {
font-size: 1.4em;
border-bottom: 1px solid #ccc;
}
code {
background-color: #ecf0f1;
padding: 2px 6px;
border-radius: 4px;
font-family: "Courier New", Courier, monospace;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
th, td {
border: 1px solid #bdc3c7;
padding: 12px;
text-align: left;
}
th {
background-color: #3498db;
color: white;
font-weight: bold;
}
tr:nth-child(even) {
background-color: #ecf0f1;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
border: 1px solid #ddd;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.container {
background-color: white;
padding: 30px;
border-radius: 8px;
box-shadow: 0 0 15px rgba(0,0,0,0.05);
}
.justification {
background-color: #e8f6f3;
border-left: 5px solid #1abc9c;
padding: 15px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1>Informe de Resultados y Discusi贸n</h1>
<h2>1. Resumen del Proyecto</h2>
<p>
El objetivo de este proyecto fue desarrollar un modelo de Machine Learning capaz de clasificar autom谩ticamente la prioridad (Alta, Media, Baja) de los tickets de una mesa de ayuda. Se sigui贸 un flujo de trabajo completo, desde la recolecci贸n y an谩lisis de datos hasta el entrenamiento, evaluaci贸n y despliegue de un modelo funcional en una interfaz de usuario interactiva utilizando Streamlit.
</p>
<p>
El proyecto culmin贸 con 茅xito, obteniendo un modelo de <strong>Regresi贸n Log铆stica</strong> que fue seleccionado por su rendimiento superior y desplegado en dos aplicaciones web funcionales.
</p>
<h2>2. An谩lisis Exploratorio de Datos (EDA) - Hallazgos Clave</h2>
<p>
El an谩lisis inicial se realiz贸 sobre un dataset consolidado de <strong>1109 registros</strong>. Los hallazgos m谩s importantes que guiaron el preprocesamiento y modelado fueron:
</p>
<ul>
<li><strong>Desbalanceo de Clases:</strong> La variable objetivo, <code>Prioridad</code>, mostr贸 un claro desbalanceo. Aproximadamente el <strong>47%</strong> de los tickets eran de prioridad 'Baja', mientras que 'Media' (27%) y 'Alta' (26%) ten铆an una representaci贸n menor. Este hallazgo fue crucial para elegir <code>f1-score (macro avg)</code> como la m茅trica principal de evaluaci贸n, ya que pondera equitativamente el rendimiento en todas las clases.</li>
<li><strong>Distribuciones Categ贸ricas:</strong> El an谩lisis de variables como <code>Area_Solicitante</code> y <code>Grupo_Asignado</code> revel贸 las 谩reas y grupos que generan mayor volumen de tickets, proporcionando un contexto operativo valioso.</li>
<li><strong>Tiempo de Resoluci贸n:</strong> La variable <code>Tiempo_Resolucion_Horas</code> present贸 un fuerte sesgo a la derecha, indicando que la mayor铆a de los tickets se resuelven r谩pidamente, pero existe una larga cola de tickets que tardan mucho m谩s tiempo en cerrarse (valores at铆picos).</li>
</ul>
<h3>Visualizaciones Generadas</h3>
<p>A continuaci贸n, se muestran los gr谩ficos generados por el script <code>00_EDA.py</code>:</p>
<img src="GRAFICOS_EDA/01_distribucion_prioridad.png" alt="Distribuci贸n de Prioridad">
<img src="GRAFICOS_EDA/04_boxplot_tiempo_vs_prioridad.png" alt="Tiempo de Resoluci贸n vs Prioridad">
<img src="GRAFICOS_EDA/02_distribucion_Area_Solicitante.png" alt="Distribuci贸n por 脕rea Solicitante">
<h2>3. Modelamiento y Evaluaci贸n</h2>
<h3>Comparaci贸n de Modelos</h3>
<p>
Se entrenaron y evaluaron tres modelos de clasificaci贸n distintos utilizando las caracter铆sticas categ贸ricas (<code>Area_Solicitante</code>, <code>Grupo_Asignado</code>, <code>Categoria</code>). A continuaci贸n se presenta la tabla comparativa de sus m茅tricas de rendimiento en el conjunto de prueba:
</p>
<table>
<thead>
<tr>
<th>Modelo</th>
<th>Accuracy</th>
<th>F1-score (Macro Avg)</th>
<th>Precisi贸n (Clase 'Alta')</th>
<th>Recall (Clase 'Alta')</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Regresi贸n Log铆stica</strong></td>
<td><strong>0.8159</strong></td>
<td><strong>0.7690</strong></td>
<td><strong>0.6207</strong></td>
<td><strong>0.7500</strong></td>
</tr>
<tr>
<td>Random Forest</td>
<td>0.7545</td>
<td>0.6909</td>
<td>0.5222</td>
<td>0.6528</td>
</tr>
<tr>
<td>Gradient Boosting</td>
<td>0.7545</td>
<td>0.6909</td>
<td>0.5222</td>
<td>0.6528</td>
</tr>
</tbody>
</table>
<div class="justification">
<h3>Selecci贸n del Modelo</h3>
<p>
El modelo de <strong>Regresi贸n Log铆stica</strong> fue seleccionado como el modelo final. La justificaci贸n se basa en que obtuvo el <strong>mayor F1-score promedio (macro avg) de 0.7690</strong>, indicando el mejor balance entre precisi贸n y recall a trav茅s de todas las clases, lo cual es fundamental para un dataset desbalanceado. Adem谩s, mostr贸 el mejor rendimiento general en todas las m茅tricas clave.
</p>
</div>
<h2>4. Resultados del Despliegue</h2>
<p>El modelo seleccionado fue desplegado en dos aplicaciones web interactivas construidas con Streamlit.</p>
<h3>Aplicaci贸n 1: Predictor de Tickets Individuales</h3>
<p>
Esta herramienta permite a un usuario ingresar las caracter铆sticas de un nuevo ticket (Categor铆a, Grupo Asignado, 脕rea Solicitante) y recibir una predicci贸n de prioridad en tiempo real, junto con las probabilidades asociadas a cada clase.
</p>
<!-- RENOMBRA TUS CAPTURAS A ESTOS NOMBRES -->
<img src="captura_form_1.png" alt="Ejemplo de Predicci贸n 1">
<img src="captura_form_3.png" alt="Ejemplo de Predicci贸n 2">
<h3>Aplicaci贸n 2: Dashboard de Tickets por Grupo y 脕rea</h3>
<p>
Esta aplicaci贸n ofrece una vista agregada, procesando todos los tickets del dataset para mostrar un resumen de las prioridades predichas por cada combinaci贸n de `Grupo_Asignado` y `Area_Solicitante`. La celda con la mayor cantidad de tickets por fila se resalta en verde para una f谩cil identificaci贸n de patrones.
</p>
<img src="captura_grid.png" alt="Dashboard de Tickets">
<h2>5. Discusi贸n, Limitaciones y Futuras Mejoras</h2>
<h3>Discusi贸n</h3>
<p>
El proyecto demuestra de manera exitosa la viabilidad de utilizar un modelo de Machine Learning para automatizar la priorizaci贸n de tickets. El modelo de Regresi贸n Log铆stica, aunque simple, provee una base s贸lida y resultados interpretables que pueden ayudar a optimizar la asignaci贸n de recursos en una mesa de ayuda. Las aplicaciones de Streamlit validan que el modelo puede ser integrado en herramientas pr谩cticas para usuarios finales.
</p>
<h3>Limitaciones del Modelo Actual</h3>
<ul>
<li><strong>Tama帽o del Dataset:</strong> El modelo fue entrenado con solo 1109 registros. Un dataset m谩s grande y variado aumentar铆a la confianza en su capacidad para generalizar a tickets futuros.</li>
<li><strong>Ingenier铆a de Caracter铆sticas Limitada:</strong> El modelo final se basa 煤nicamente en tres variables categ贸ricas. Se est谩 desaprovechando informaci贸n potencialmente valiosa, como el texto del <code>Asunto</code> o la fecha/hora de creaci贸n.</li>
<li><strong>Validaci贸n Simple:</strong> Se utiliz贸 una 煤nica divisi贸n de datos para entrenamiento y prueba. Una t茅cnica m谩s robusta como la <strong>validaci贸n cruzada (k-fold)</strong> proporcionar铆a una estimaci贸n m谩s fiable del rendimiento del modelo.</li>
<li><strong>Sin Optimizaci贸n de Hiperpar谩metros:</strong> Los modelos se entrenaron con sus hiperpar谩metros por defecto. Un proceso de ajuste fino podr铆a mejorar a煤n m谩s el rendimiento.</li>
</ul>
<h3>Posibles Mejoras Futuras</h3>
<ul>
<li><strong>Incorporar Procesamiento de Lenguaje Natural (NLP):</strong> Integrar el an谩lisis del campo <code>Asunto</code> utilizando t茅cnicas como TF-IDF (como se explor贸 en el script <code>05_ENTRENA_REPARA_DATOS.py</code>) para capturar el contexto del ticket, lo cual probablemente mejorar铆a significativamente la precisi贸n.</li>
<li><strong>Implementar Validaci贸n Cruzada y Ajuste de Hiperpar谩metros:</strong> Utilizar herramientas como <code>GridSearchCV</code> para encontrar la mejor combinaci贸n de par谩metros y validar los resultados de forma m谩s rigurosa.</li>
<li><strong>Expandir la Ingenier铆a de Caracter铆sticas:</strong> Extraer nuevas caracter铆sticas de las columnas de fecha, como el d铆a de la semana, la hora del d铆a o si fue creado fuera del horario laboral.</li>
<li><strong>Recopilar M谩s Datos:</strong> Implementar un ciclo de retroalimentaci贸n donde el modelo se re-entrene peri贸dicamente con nuevos tickets para que aprenda de nuevos patrones y no se vuelva obsoleto.</li>
</ul>
</div>
</body>
</html>