Inteligencia de Negocio - Universidad de Granada

UNIVERSIDAD DE GRANADA
E.T.S. de Ingenierı́as Informática y de Telecomunicación
Departamento de Ciencias de la
Computación e Inteligencia Artificial
Inteligencia de Negocio
Guión de Prácticas
Práctica 2:
Competición en Kaggle sobre Preprocesado de Datos
Curso 2015-2016
Cuarto Curso del Grado en Ingenierı́a Informática
Práctica 2
Competición en Kaggle sobre
Preprocesado de Datos
1. Objetivos y Evaluación
En esta segunda práctica de la asignatura Inteligencia de Negocio veremos el uso de métodos
de preprocesado de datos para aprendizaje supervisado en clasificación, una tarea muy habitual
al abordar problemas reales en business analytics. Se hará uso de la plataforma Kaggle (https:
//www.kaggle.com/) para evaluar los resultados. El estudiante adquirirá destrezas para mejorar
los datos con el objetivo de aumentar la capacidad predictiva de los algoritmos de aprendizaje,
ası́ como familiarizarse con una de las plataformas de competición en Ciencias de Datos más
extendida hoy dı́a.
La evaluación de la práctica se dará en función de la posición final que ocupe el resultado
propuesto por el estudiante con el siguiente criterio:
puesto 1◦
puntuación 3
2◦
3
3◦
4◦ 5◦
2,5 2,25 2
... último
...
1
Las posiciones serán linealmente proporcionales entre los dos puntos del 5◦ y el punto del
último. Para obtener esta puntuación no bastará con subir los resultados a Kaggle, se deberá también adjuntar un documento que describa el proceso seguido por el estudiante para
resolver la práctica y demostrar mediante la actividad registrada en Kaggle que ha habido un
esfuerzo por mejorar los resultados mediante preprocesado.
2. Descripción del Problema y Reglas de la Competición
La competición se centra en el uso de métodos de preprocesado (selección de instancias y
caracterı́sticas, filtros, imputación, etc.) en un problema con ruido, valores perdidos y con un
reparto de la clase moderadamente desequilibrada. La competición Kaggle se encuentra en la
siguiente dirección:
1
3 Procedimiento de Experimentación
2
http://inclass.kaggle.com/c/ugr15-preprocessing-for-protein-structure-prediction/.
Cada estudiante deberá registrarse en Kaggle con un email con dominio ugr.es para poder participar. Se puede subir un máximo de cuatro soluciones al dı́a.
La clase es binaria: positivo (1) o negativo (0). La tasa de instancias de la clase positiva
es del 25 %. El conjunto de datos de entrenamiento contiene 50 caracterı́sticas (reales, enteras
y nominales) y 20.000 instancias. Se ha extraı́do de un conjunto de datos mayor utilizado en
bioinformática para predecir estructuras de proteı́nas 1 . El conjunto de entrenamiento se ha
modificado artificialmente para incluir ruido de clase y valores perdidos.
Dado que la competición es sobre preprocesado, el algoritmo usado para aprender el clasificador será siempre el mismo, con la misma implementación y los mismos valores de los
parámetros, de modo que el trabajo se centrará en preparar los datos que enviar a este algoritmo. Se usará el algoritmo C4.5 en la versión implementada en KEEL 3.0 (http://www.keel.es)
y con los parámetros por defecto (pruned=TRUE, confidence=0.25, instancesPerLeaf=2).
Sin embargo, Kaggle solo permite evaluar el comportamiento sobre el resultado final de
clasificación, de modo que será responsabilidad del participante usar este algoritmo y con la
implementación mencionada. El administrador de la competición podrá pedir a los participantes
que faciliten los datos preprocesados enviados a C4.5 en cualquier momento, y será obligatorio
hacerlo en cualquier caso al final de la competición, antes de fijar la posición final de los
participantes.
Se usará el AUC (área bajo la curva ROC) como métrica de evaluación. Debe tenerse
en cuenta que la puntuación mostrada en Kaggle durante la competición se calcula sobre un
subconjunto de la solución enviada. Una vez que la competición ha finalizado, se mostrarán los
resultados finales sobre un subconjunto diferente de la solución enviada, los cuales constituirán
el ranking definitivo.
3. Procedimiento de Experimentación
En la web de Kaggle se encuentran disponibles los siguientes archivos:
UGR2015 tra.csv: conjunto de datos de entrenamiento sobre los que se aplicará el preprocesado.
UGR2015 tst.csv: conjunto de datos de prueba sin las etiquetas de clase.
UGR2015 sampleSubmission.csv: ejemplo de archivo a enviar a Kaggle que coincide con
el resultado de C4.5 sobre el conjunto inicial de entrenamiento sin preprocesado. Obtiene
una puntuación de 0.629266666666667.
UGR2015 keel header.txt: cabecera del conjunto de datos para usar en formato KEEL.
1
J. Bacardit, P. Widera, A. Márquez-Chamorro, F. Divina, J.S. Aguilar-Ruiz, N. Krasnogor, Contact map
prediction using a large-scale ensemble of rule sets and the fusion of multiple predicted structural features,
Bioinformatics 28:19 (2012) 2441-2448
4 Entrega
3
Para el uso correcto en KEEL, deberá comenzarse por crear el fichero en formato KEEL
usando la cabecera disponible. Estos archivos están disponibles en la web de la asignatura.
A continuación puede importarse este fichero (con la opción KEEL to KEEL) para integrarlo
en la herramienta. Se recomienda dividir el conjunto de datos de entrenamiento en distintas
particiones para validación cruzada, de modo que sea el comportamiento medio sobre estos
datos los que sirvan para validar los resultados y depurar el preprocesado.
Una vez se ha obtenido un preprocesado satisfactorio que se desea entregar en Kaggle,
se puede seguir el siguiente procedimiento. En el directorio que contiene los datos dentro de
KEEL, crearemos dos ficheros que contengan el conjunto de datos de entrenamiento y de prueba
usados en la competición pero en formato KEEL. Por ejemplo, si se ha dado el nombre ugr2015
al conjunto de datos en KEEL, en el directorio donde se encuentran los datos incluiremos dos
ficheros con nombres ugr2015-1-1tra.dat y ugr2015-1-1tst.dat. Ası́, en la experimentación
se elegirá validación cruzada con número de carpetas igual a 1 para que se usen estos datos.
En el conjunto de prueba se debe incluir la clase, de modo que puede optarse por simplemente
añadir siempre la clase positive a todas las instancias. Este aspecto es irrelevante, pues el único
interés es disponer de la predicción hecha por C4.5 para este conjunto de datos.
Una vez ejecutado el experimento, este resultado se encuentra en el archivo ./results/
C45-C.ugr2015/result0.tst. Se deberá extraer la segunda columna de este fichero (que contiene la predicción de C4.5), convertirla a 0 (negative) y 1 (positive), y componer un archivo
similar a UGR2015 sampleSubmission.csv para poderse enviar a Kaggle. Para comprobar que
todo se está haciendo correctamente, es recomendable hacer el experimento inicial en KEEL
con C4.5 sobre el conjunto de datos de entrenamiento, componer el fichero solución y presentarlo en la plataforma de competición. Si todo va bien, el fichero deberá ser idéntico a
UGR2015 sampleSubmission.csv y la puntuación en Kaggle deberá ser 0.629266666666667.
Este valor indica un lı́mite inferior, pues cualquier preprocesado que se decida aplicar deberı́a
mejorar este resultado.
4. Entrega
La competición en Kaggle finaliza el martes 6 de enero de 2016 a las 23:59. Tras acabar
la competición, el estudiante deberá también entregar antes del 8 de enero de 2016 a las 23:59
una documentación que explique las tareas de preprocesado realizadas ası́ como el conjunto de
datos final en formato KEEL usado sobre C4.5 y correspondiente a la mejor solución enviada
a Kaggle. Este material adicional se entregará a través de la web de la asignatura en https://
decsai.ugr.es en un único archivo zip. Tanto en el nombre del archivo comprimido como en la
documentación deberá indicarse con claridad el nombre de usuario utilizado en Kaggle durante
la competición: P2-apellido1-apellido2-nombre-nick kaggle.zip. Es decir, la estudiante
“Marı́a Teresa del Castillo Gómez” con el nombre de usuario en Kaggle “maite” subirá el
archivo: P2-delCastillo-Gómez-Marı́aTeresa-maite.zip. La documentación, contenida en
ese mismo archivo zip, tendrá el mismo nombre pero con extensión pdf.