explorando los límites de la predicción
Post on 14-Jan-2017
1.085 Views
Preview:
TRANSCRIPT
Currículo
➔Engenheiro Eletrônico formado pelo CEFET/Curitiba em 2003
➔7 anos experiência em desenvolvimento de circuitos eletrônicos
➔7 anos experiência como engenheiro de automação
➔5 anos trabalhando com ciência de dados
Plataforma Kaggle
➔ É a maior plataforma de competição de modelagem preditiva no mundo
➔ Mais de meio milhão de cientistas de dados cadastrados.
➔ Cerca de 48.000 cientistas ativos em competições
➔ O Kaggle hospeda e empresas podem patrocinar as competições
Como Funciona uma Competição
➔ Registro no site➔ Escolha uma competição e se registre nela➔ Baixe os Datasets (train set e test set)➔ Monte modelos baseados no train set e faça
previsões do test set➔ Upload suas previsões para avaliação no site➔ Acompanhe seu desempenho no
LeaderBoard
Como Extrair o Máximo do Modelo
➔ Entenda o Problema➔ Pense em várias possiveis soluções➔ Escolha a métrica de performance adequada➔ Crie boas features➔ Crie modelos adequados ao problema➔ Escolha a estrategia de Validação adequada➔ Sintonize hyperparametros baseado na técnica
de validação cruzada➔ Combine modelos usando multiplos níveis de
treino (stack / ensemble)
Domine os algoritmos de classificação e
regressão➔ Gradient Boosting Decision Trees➔ Redes Neurais / Deep Learning (GPU)➔ Árvores de decisão➔ Nearest Neighbors➔ Factorization Machines➔ Suport Vector Machine(SVM)➔ Stochastic Gradient Descend➔ Regressão Linear➔ Bayesian➔ VowpalWabbit
Domine a Técnica de Validação Cruzada
➔ Estime um número de folds adequado ao problema
➔ Use folds aleatórios ou estratificados quando possível, ou agrupados por casos semelhantes.
➔ Em series temporais use folds consecutivos.
➔ FIXE os indices dos folds que serão usados em todos os modelos, isso possibilita comparar a performance dos modelos entre eles ou com modelos de outros membros do time
Roteiro para treinamento de um
modelo validado➔ Prepare o dataset➔ Crie Features➔ Treine com cross-validação e salve a predição de todos os folds
➔ Calcule a performance de todos os folds➔ Guarde o modelo treinado e suas predições
Treinando Ainda Mais Segundo Nível de Treino
Combinando modelos de forma simples.
➔ Média Aritimética
➔ Média Geometrica
Treinando Ainda Mais Segundo Nível de Treino
Combinando modelos de forma complexa:
➔ Aprendizado Supervisionado: Múltiplos Níveis de treinamento
Vários Níveis de Treino
GBM
RandomForest
Neural Net
Logistic Regression
GBMLinear Regression/Weighted Average
Logistic Regression
Neural Net
LEVEL 1 LEVEL 2 LEVEL 3
Multiplos Niveis de Treino
Porque adicionando multiplos niveis de treinamento melhoram a performance?
DIVERSIDADEDIVERSIDADE
● De algoritmos de treinoDe algoritmos de treino
● De featuresDe features
Multiplos Niveis de Treino
➔ Como avaliar a priori se uma simples Como avaliar a priori se uma simples média entre modelos será boa?média entre modelos será boa?
““Supondo que dois modelos X e Y Supondo que dois modelos X e Y apresentam uma performance apresentam uma performance equivalente, quanto menor a correlação equivalente, quanto menor a correlação entre eles, melhor será a performance.”entre eles, melhor será a performance.”
Correlações >0.99 costumam não Correlações >0.99 costumam não melhorar a performancemelhorar a performance
Kaggle – Otto Challenge
Feature Engineering:
➔ Contagem de zeros➔ Transformações Logaritmicas➔ Agrupamento K-means ➔ Soma e subtração entre grupos de features similares
➔ Redução de dimensão t-SNE em 3 features
➔ Vizinhos mais próximos
Kaggle – Otto Challenge
Estrategia de Cross-Validação:
● Exemplo: 5 folds aleatórios com índices fixos
TEST SET
1 2 3 4 5
TRAIN SET
Kaggle – Otto Challenge
Estrategia de Cross-Validação 5 Folds:
➔ Cada Modelo passa por 6 etapas de treino:
1) Fold1: treino com folds [2,3,4,5]2) Fold2: treino com folds [1,3,4,5]3) Fold3: treino com folds [1,2,4,5]4) Fold4: treino com folds [1,2,3,5]5) Fold5: treino com folds [1,2,3,4]6) Test Set: treino com folds [1,2,3,4,5]
Kaggle – Otto Challenge
Modelos:
➔ Ao todo foram treinados 37 modelos no primeiro nível de aprendizado.
● No segundo nível, além das 37 meta features, foram criadas mais 8 features não-supervisionadas.
Kaggle – Otto Challenge
Modelos:➔ 18x KneighborsClassifier➔ 6x Xgboost➔ 4x Lasagne Neural Net➔ 3x SofiaML➔ 1x Logistic Regression➔ 1x Extra Trees Classifier➔ 1x Multinomial Naive Bayes➔ 1x Random Forest➔ 1x LibFM➔ 1x H2O Neural Net
Kaggle – Otto Challenge
Neighbors Feature Engineering:
➔ Soma das distâncias dos N vizinhos mais próximos e clusterização K-Means usando as 3 transformações do Dataset:
✔ Data set Original✔ Data set transformado com Log(X+1) ✔ Data set Reduzido a 3 dimensões usando o
algoritmo t-SNE (t-distributed stochastic neighbor embedding)
Otto – Arquitetura da Solução
Meta Predictions37x Modelos
8x Features de
Distância
XgBoostBag: 250 runs
Média Ponderada/Weighted Average
Geometrica e Aritmetica
AdaBoost(ExtraTrees)
Bag: 250 runs
Neural NetBag: 600 runs
LEVEL 1 LEVEL 2 LEVEL 3
Kaggle – Otto Challenge
➔ Média Ponderada nas predições do segundo nível:
PREVISÕES = 0.85 * [([(XGBoostXGBoost^0.65)*(^0.65)*(NeuralNetNeuralNet^0.35)]^0.35)] +0.15 * ADABoost(ET)ADABoost(ET)
Kaggle – Otto Challenge
Resultados:
➔ Level2 crossvalidated + weighted mean LogLoss: 0.3962
➔ Kaggle LeaderBoard (Public): 0.38055
➔ Kaggle LeaderBoard (Private): 0.38243
Kaggle – Otto Post Challenge Forum
https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/14335/1st-place-winner-solution-gilberto-titericz-stanislav-semenov/79598#post79598
Contact
Gilberto Titericz Junior
• titericz@yahoo.com● https://www.kaggle.com/titericz
● https://br.linkedin.com/in/gilberto-titericz-jr-6601357
top related