4. >1000 pessoas!
>150 serviços Clojure
>21 modelos em produção
>140 na engenharia
>45 analistas de negócios
>16 data scientists
5. Nubank
▪ Nubank é uma empresa de tecnologia
▪ Oferecemos um produto gratuito
▪ Intensivo em capital
▪ Limite de crédito vale "pra sempre"
▪ Decisões de crédito demoram meses para serem validadas
▪ Não há margem para erro!
6. ▪ Curva de crescimento ditou boa
parte das estratégias
▪ Distribuição de dados
▪ Treino/Teste < > Realidade
▪ ex. Sul / Sudeste — Brasil
▪ Praticamente sem histórico
Nubank
11. Os Data Scientists - Quem somos
▪ 16+ Data Scientists
▪ Estatísticos, Físicos, Cientistas da Computação, Engenheiros, Economistas,
etc
▪ Áreas em que atuamos:
▪ Crédito - Aprovação, limites, Marketing e cobranças e atendimento ao cliente
▪ Que tipo de profissional buscamos?
▪ Portfolio de projetos
▪ Experiência em Machine Learning
▪ Kaggle
13. Chapter Data Science
▪ Espalhados em squads
▪ Pares ou trios
▪ Unidos por habilidades em comum
▪ Rituais:
▪ Standup
▪ Chapter meeting
▪ Article Reading Group
▪ Meetup - Machine Learning Big Data Engenharia
😏
Data
Scientists
Engenheiros
Analistas 😏😏
😏 😏😏
😏 😏😏
Squad Squad Squad
14. Exemplos de modelos em produção
▪ Diversos modelos de risco de crédito
▪ Gastos / Comportamento
▪ Cobranças - Ligações
▪ Contexto - FAQ - "Me ajuda"
▪ Resposta automática - emails
▪ Marketing
▪ Chat routing
▪ Fraude
▪ …
18. [ Db ] - Datomic + Clojure
▪ BD —> fotografia dos seus dados em um certo ponto no tempo
▪ "Como o Git para seus dados”
▪ Permite os data scientists darem um “replay" nos dados
▪ Porém…
▪ …Queries em Clojure
19. Python
▪ Modelos e análises —> Python
▪ 70/30% IDE ou Jupyter Notebook
▪ Análises Ad hoc - Jupyter Notebook
▪ Todo modelo, na pratica, era um modelo online
20. ETL
Separando os ambientes Transacional e Analítico - BI
em um mundo de Micro-serviços
SOUTHEAST BRAZIL REGION FROM SPACE
21. Queremos o melhor de 02 mundos
▪ Ambiente Transacional
▪ Alta velocidade para escrever
dados
▪ Fragmentado
▪ Necessária “supervisão" de
um engenheiro
▪ Ambiente analítico
▪ Alta velocidade e
disponibilidade de leitura
▪ Global
▪ Autonomia
23. ETL
▪ Disponibilidade
▪ Autonomia
▪ Data Scientists e Analistas têm acesso a “tudo”
▪ Shipar datasets batch é “fácil”
▪ Shipar modelos batch é "fácil"
26. Métricas
▪ Qual a métrica mais importante que queremos mover?
Exemplos:
▪ Quanto ter uma melhor previsão de risco pode ajudar?
▪ Qual o custo de oportunidade de errar as previsões de gasto?
▪ É possível identificar os clientes que vão usar o rotativo?
27. "Se o AUC fosse 15% pior, você mudaria sua decisão?"
29. Target e Score time
▪ Onde os debates mais "acalorados" acontecem
▪ Viabilidade do Target vs Numero de linhas
▪ Quando vai rodar?
▪ No dia do vencimento da fatura?
▪ Primeiro dia do mês?
30. Processos e o “Model Deck”
▪ Serve para eliminar reduzir o risco do modelo
▪ Scores em prod < > Scores treino/teste
▪ Model Deck é um check list
▪ Boas práticas
▪ Documentação
31. Validação
▪ Simulamos como seria colocar o modelo em produção várias
vezes
▪ Validação cruzada
▪ Fora do tempo
▪ Fora dos ids
▪ Curvas de aprendizado
32. fkit-learn
▪ Biblioteca interna do Nubank para treinar / colocar modelos em
produção
▪ Versão "funcional" do scikit.learn
▪ Score(X) = fn(…f3(f2(f1(X)))…)
▪ Ajuda manter coesão entre os Data Scientists
▪ Reprodutibilidade
35. Politica de limites (2014-2016)
▪ Dados
▪ Serasa + Utilização
▪ Histórico inexistente
▪ Ajustava o limite dos clientes de forma a manter uma utilização
do limite de crédito compatível com o risco
▪ Rodado Manualmente (Jupyter notebook)
36. Política de Limites
▪ Tipos:
▪ Proativa - Aumenta limites
automaticamente
▪ Reativa - Deixa um aumento pronto
caso o cliente solicite
41. Framework de teste e controle
▪ Todas as decisões que impactem clientes
▪ Salvas
▪ Facilmente acessíveis
▪ Facilmente testáveis
42. Política A
Política B
Política C
Framework de experimentação
Serving
LayerSaída
da
política
ETL
Serviço I
Serviço II
Serviço III
Decisão
Decisão
Decisão
Serviços
Framework de teste e controle
44. Armadilhas
▪ Randomização não ortogonal
▪ Mesmo números "aleatórios" usados em diferentes
experimentos
▪ Ignorar efeitos de carry-over
▪ O que acontece depois de 3 meses de teste?
▪ Filtrar antes de atribuir o numero aleatório
▪ Possível viesar o teste