This presentation is about the competition of Kaggle "Otto-group". It describes the techniques of data mining and preprocessing used by Jesus Fernandez Carlos Basso and Ismael Gonzalez Marin.
Web: http://mldgr.github.io/Kaggle_Otto_Group/
2. Otto Group: compañía de comercio electrónico.
Problema: mismos productos, clasificados de distinta forma.
Más de 200,000 productos:
Training: 61.878
Test: 144.368
93 características.
9 clases desbalanceadas.
INTRODUCCIÓN
10. Filtrado
Iterative-Partitioning Filter.
Tres grupos de clasificadores:
LMT (Rweka).
J48 (Rweka).
Bagging (adabag).
5 clasificadores, mayoría en 3: ninguna instancia eliminada.
11 clasificadores, mayoría en 6: 4 instancias eliminadas.
Transformación scale(log(x+1)+1): sobre 600 instancias
eliminadas.
26. DYNAMIC ONE vs. ONE
Random Forest.
27 vecinos.
Sólo se obtiene clase
ganadora.
Kaggle 0.7170, CV
0.6452
Reparto de
probabilidades según
número de vecinos.
Orden 1 2 >2
1 0.999 0.995 0.815
2 0.0003 0.001 0.132
3 0.0002 0.0005 0.036
4 0.0001 0.0001 0.0093
5 0.0001 0.0001 0.0042
6 0.0001 0.0001 0.0014
7 0.0001 0.0001 0.0012
8 0.00005 0.00005 0.00085
9 0.00005 0.00005 0.00005
27. DYNAMIC ONE vs. ONE y ENSEMBLE
Suma de las probabilidades de la matriz votación para cada
clase.
Orden de las clases.
Distancia de los vecinos más cercanos y clase.
Dos estrategias.
Particionado 0.8/0.2
Generamos un OVO y un ensemble.
28. ESTRATEGIA 1
12371 instancias sobre las
que generar reglas vs. 144368
instancias conjunto test.
Son reglas adhoc: no hay
forma de garantizar que se
cumplan en todo el conjunto
test.
OVO y ensemble coincidían
86.7 por ciento en primera
clase.
Hay clases que tienen mucho
ruido.
30. ESTRATEGIA 1
Condiciones
Que la probabilidad de la instancia que se obtenía a partir de la matriz de
votación estuviera por encima de un cierto valor.
Que los vecinos que la rodearan sólo tuvieran un número determinado de
clases distintas.
Que la condición anterior se pudiera acotar a un número distinto de vecinos.
Que además de las dos anteriores, esos vecinos no estuvieran lejos de la
instancia (entendido como tal que su distancia sea menor que la distancia media
de todos los vecinos más la desviación típica).
Modificaba 1128 instancias del conjunto de prueba: de 0.4965 a 0.4942
en CV.
Modificaba 12070 del conjunto test: de 0.41354 a 0.44580 en Kaggle.
32. SOLUCIÓN GANADORA
La solución propuesta está basada en 3 capas de aprendizaje,
las cuales funcionan de la siguiente forma:
Nivel 1: se realizaron 33 modelos para realizar predicciones, que se
utilizaron como nuevas características para el nivel 2. Estos modelos se
entrenaban con una 5 fold cross-validation.
Nivel 2: en este nivel se utilizan las 33 nuevas características obtenidas
en el nivel 1 más 7 meta características utilizando: XGBOOST, Neural
Network (NN) y ADABOOST con ExtraTrees (árboles más aleatorios).
Nivel 3: en este nivel se realizaba un ensamble de las predicciones de la
capa anterior.
33. SOLUCIÓN GANADORA
En la imagen podemos apreciar la arquitectura completa de la solución.
Los modelos utilizados en la primera capa son (con diferentes selección
de características y transformaciones):
NN (Lasagne Python).
XGBOOST.
KNN.
Random Forest.
H2O (deep learning, GMB).
Sofia.
Logistic Regression.
Extra Trees Classifier.
34. SOLUCIÓN GANADORA
Meta-características generadas para esta primera capa:
Característica 1: distancia a los vecinos más cercanos de la clase.
Característica 2: suma de las distancias a los 2 vecinos más cercanos de
cada clase.
Característica 3: suma de las distancias a los 4 vecinos más cercanos de
cada clase.
Característica 4: distancia a los vecinos más cercanos de cada clase con
espacio TFIDF.
Característica 5: distancia al vecino más cercano de cada clase utilizando
la reducción de características T-SNE a 3 dimensiones.
Característica 6: clustering del dataset original.
Característica 7: número de elementos diferentes a cero de cada fila.
35. SOLUCIÓN GANADORA
El resultado de esta solución fue:
Cross-validated
solution scored
LB (Public) LB (Private)
0.3962 0.38055 0.38243