Pregunta

Estoy tratando de crear un modelo de regresión que predice la duración de una tarea. Los datos de capacitación que tengo consisten en aproximadamente 40 mil tareas completadas con estas variables:

  • Quien realizó la tarea (~ 250 personas diferentes)
  • En qué parte (subproject) del proyecto se realizó la tarea (~ 20 partes diferentes)
  • El tipo de tarea
  • La fecha de inicio de la tarea (10 años de datos)
  • Cuánto tiempo la persona que tiene que hacer la tarea estima que tomará
  • La duración real que esta tarea tomó para terminar

La duración puede variar entre media hora y un par de cientos de horas, pero está muy bien sesgada (la mayoría de las tareas se completan dentro de las 10 horas). En la escala de registro, la distribución todavía está ligeramente sesgada.

La predicción no tiene que ser perfecta, pero estoy tratando de mejorar las estimaciones de las personas. Una pregunta para hacer es "¿Qué medida podemos usar la definición? comisario? "Creo que la mejor medida sería el error cuadrático medio (MSE) ya que pesa grandes errores mucho peores que los pequeños errores.

Antes de recurrir al aprendizaje automático, probé algunos enfoques simples, como ajustar la estimación por error promedio o mediano, ajustándolo por el error promedio/mediano agrupado por persona, agrupado por subproyecto, pero cada uno de estos funcionó peor.

Con el aprendizaje automático, uno de los primeros problemas que encontré fue el número de variables categóricas, ya que para la mayoría de los modelos tienen que codificarse de alguna manera (por ejemplo, un solo punto). De todos modos, intenté aplicar algunos modelos lineales, por ejemplo, con descenso de gradiente estocástico, mi enfoque sería:

  1. Un solo caliente codifica las características categóricas
  2. El convertido la fecha a las marcas de tiempo de Unix
  3. Normalizar todas las características que aún no están entre 0 y 1
  4. Divida los datos en conjuntos de aprendizaje y prueba 80/20.
  5. Con la validación cruzada de búsqueda de cuadrícula y el conjunto de aprendizaje intente encontrar los mejores parámetros hiper y se ajuste al modelo.
  6. Predecir con el conjunto de pruebas
  7. Calcule el error/puntuación

Ahora, una cosa que noté fue que los resultados variaban bastante: en una ejecución, el MSE estaba cerca del doble de otra carrera (150 y 280). Otra cosa es que el MSE de la estimación de la gente es de aproximadamente 80, por lo que mi modelo funciona un poco peor.

Durante mis esfuerzos por mejorar el rendimiento, me topé esta pregunta donde alguien sugiere usar modelos de supervivencia. Ahora no estoy familiarizado con este tipo de modelos, pero sonó prometedor, pero durante mis pruebas iniciales con esto resulta ser demasiado lenta para mis propósitos (demasiado grande).

En la misma respuesta de datos que sugirió usar los modelos de supervivencia (y la página de Wikipedia) También mencionaron la regresión de Poisson, pero no estoy seguro de cómo aplicaría esto a mi caso.

Entonces, un resumen largo: solo tengo dos preguntas: 1. ¿Fue mi enfoque de usar SGD 'correcto' y crees que puedo mejorar los resultados con eso? 2. ¿Otros modelos son más adecuados para este tipo de predicción y, de ser así, puede explicar un poco cómo los usaría?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
scroll top