El Data Scientist N° 1 del mundo, reconocido por la web de competiciones Kaggle, y por otros medios especializados, viene a compartir las claves de cómo desarrollar modelos predictivos con un máximo nivel de precisión y confiabilidad, a través del ensamblaje de modelos y otras herramientas útiles. Esta charla es imperdible!
2. 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
3. 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
6. 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
7. 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)
8. 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
9. 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
10. 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
11. Treinando Ainda Mais
Segundo Nível de Treino
Combinando modelos de forma simples.
➔
Média Aritimética
➔
Média Geometrica
12. Treinando Ainda Mais
Segundo Nível de Treino
Combinando modelos de forma complexa:
➔
Aprendizado Supervisionado: Múltiplos
Níveis de treinamento
13. Vários Níveis de Treino
GBM
Random
Forest
Neural Net
Logistic
Regression
GBM
Linear Regression/
Weighted Average
Logistic
Regression
Neural Net
LEVEL 1 LEVEL 2 LEVEL 3
14. Multiplos Niveis de
Treino
Porque adicionando multiplos niveis de
treinamento melhoram a performance?
DIVERSIDADEDIVERSIDADE
●
De algoritmos de treinoDe algoritmos de treino
●
De featuresDe features
15. Multiplos Niveis de
Treino
➔
Como avaliar a priori se uma simplesComo avaliar a priori se uma simples
média entre modelos será boa?média entre modelos será boa?
““Supondo que dois modelos X e YSupondo que dois modelos X e Y
apresentam uma performanceapresentam uma performance
equivalente, quanto menor a correlaçãoequivalente, quanto menor a correlação
entre eles, melhor será a performance.”entre eles, melhor será a performance.”
Correlações >0.99 costumam nãoCorrelações >0.99 costumam não
melhorar a performancemelhorar a performance
16. Kaggle – Otto Group
Product Classification
Challenge
19. 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
21. 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]
22. 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.
23. 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
24. 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)
25. Otto – Arquitetura da
Solução
Meta Predictions
37x Modelos
8x
Features de
Distância
XgBoost
Bag: 250 runs
Média Ponderada/
Weighted Average
Geometrica e
Aritmetica
AdaBoost
(ExtraTrees)
Bag: 250 runs
Neural Net
Bag: 600 runs
LEVEL 1 LEVEL 2 LEVEL 3
26. 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)
29. 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