otto challenge report
Post on 15-Apr-2017
273 Views
Preview:
TRANSCRIPT
2015
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
t-SNE 2D
Características
Característica 2: 42 valores.
Característica 3: 37 valores.
Característica 4: 48 valores.
Característica 5: 59 valores.
Característica 6: 15 valores.
Característica 7: 9 valores.
Selección de características65 características
Métrica
Error máximo al fallar: -34.53
Error al acertar con probabilidad 0.9: -0.1053
𝑙𝑜𝑔𝑙𝑜𝑠𝑠=− 1𝑁∑𝑖
𝑁
∑𝑗
𝑀
𝑦 𝑖𝑗 log (𝑝𝑖𝑗)
max ¿ ¿
Transformación
scale log
scale-log
𝑡𝑓 (𝑡 ,𝑑)×𝑖𝑑𝑓𝑡 (𝑡 ,𝐷)
tf-idf
2√𝑥+3 /8
scale
𝑧=𝑥−𝜇 𝜎 log (𝑥+1)
𝑠𝑐𝑎𝑙𝑒( log (𝑥+1 )+1)
Transformaciones
Transformaciones
FiltradoIterative-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.
Random Forest
Benchmark organización (Python árboles): 1.5387
1,000 árboles, log(x+1)
5 folds-CV:
0.8 training, 0.2 test
Mean.Accuracy Sd
Class_1 0.3983019 0.010407332
Class_2 0.8836811 0.005305709
Class_3 0.4259428 0.010478153
Class_4 0.3400000 0.008294590
Class_5 0.9559097 0.002991734
Class_6 0.9369179 0.001994033
Class_7 0.6189622 0.006890707
Class_8 0.9174651 0.005205630
Class_9 0.8663486 0.007391558
Random Forest (1000 árboles)
Error: 0.6880±0.0023
Precisión: 0.7922±0.0014
Kaggle (SMOTE y scale-log): 0.549699
SVM (polinomial)
Error: 0.591±0.009
Precisión: 0.7807±0.0020
Kaggle (scale-log): 0.56428
XGBOOSTING
Error: 0.476±0.009
Precisión: 0.7807±0.0020
Kaggle (anscombe): 0.43055
BALANCEO MULTICLASE
Random Undersampling.
Random Oversampling.
SMOTE.
Tomek Link.
BALANCEOS
BALANCEOS
PROBABILIDADES
XGBOOSTING Random Forest
NNET:
Perceptrón 0.9
RSNNS:
Jordan 1.4
Perceptrón multicapa 0.62 Iteracciones máximas: 250 Tamaño: 28 Parámetro de aprendizaje: 0.1 Función de aprendizaje: Rprop. Transformación: scale-log.
REDES NEURONALES
REDES NEURONALES (Deep learning)
H2O
H2O Transformación: anscombe. 3 capas: 1,200, 600, 300 Hidden dropout ratio: (0.5, 0.5, 0.5). Input dropuot ratio: 0.05 Epoch: 120 I1=1e-5 I1=1e-5 rho=0.99 epsilon=1e-8 Ejemplos de entrenamiento por iteración: 2,400
0.453Selección de características y balanceo: 0.4437
REDES NEURONALES (Deep learning)
REDES NEURONALES (Deep learning)
Ensemble
LASAGNE (Python) Transformación: anscombe. 3 capas ocultas: 520, 460, 160 Coeficiente de aprendizaje 0.001 Actualización mediante adagrad. 0.461
THEANO (Python) Densa-dropout-densa: 1,000, 500, 1,000 Coeficientes 0.25 y 0.18 Resto de parámetros iguales a LASAGNE. 0.445
REDES NEURONALES (Convolutivas)
REDES NEURONALES
PROBABILIDADES COCINADAS
Clase ganadora 0.9Segunda clase 0.1
Umbral 0.7Clase ganadora 0.8Segunda clase 0.1Tercera clase 0.1
1 2 3 4 5 6 7 8 9
81.45 13.25 3.54 0.93 0.42 0.14 0.12 0.09 0.02
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
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.
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.
ESTRATEGIA 1
ESTRATEGIA 1Condiciones
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.
SOLUCIÓN GANADORALa solución fue implementada por
Gilberto Titericz
Stanislav Semenov
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.
SOLUCIÓN GANADORAEn 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.
SOLUCIÓN GANADORAMeta-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.
SOLUCIÓN GANADORAEl resultado de esta solución fue:
Cross-validated solution scored LB (Public) LB (Private)
0.3962 0.38055 0.38243
top related