most read
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Careers
We are building diverse teams with the most creative and innovative professionals for each position we open.



Leia a Parte I da série aqui.
Na primeira parte dessa série, falamos sobre os princípios da fklearn e como ela pode ser útil para construir pipelines de aprendizado de máquina usando funções puras. No entanto, os benefícios mais significativos do uso da fklearn surgem ao fazer análise e validação de modelos, como veremos a seguir.
Validação extensível
Para modelos que entram em produção, a validação geralmente exige muito mais do que apenas descobrir o valor de alguma métrica em um conjunto de validação ou comparar uma métrica com um benchmark. Muitas vezes queremos responder a perguntas como:
Todas essas perguntas podem parecer muito diferentes, mas podem ser respondidas pelo mesmo algoritmo de validação de modelo generalizado.
Algoritmo de validação de modelo generalizado do fklearn: Primeiro, os dados são divididos em partes, uma função de treinamento é aplicada a algum subconjunto de dados, as previsões são feitas em outro subconjunto e, em seguida, uma função de avaliação é aplicada às previsões.
Na fklearn, esse algoritmo é implementado pela função validadora:
A função validator em fklearn (dentro de fklearn.validation.validator) implementa o algoritmo de validação generalizado descrito aqui.
O validador retorna um conjunto de registros contendo os resultados de todas as avaliações feitas nos conjuntos de teste. A análise pode então ser feita extraindo os dados desses registros (a fklearn fornece funções auxiliares para fazer isso).
Simplesmente trocando as funções de divisão e avaliação, podemos simular e avaliar muitos cenários da vida real diferentes, o que nos ajuda a responder a essas questões.
Vejamos um exemplo, usando a função de aprendizagem (learner) que definimos na Parte 1, quando tentamos responder a estas duas questões:
Um exemplo completo de treinamento e avaliação.
Vamos examinar este exemplo mais detalhadamente.
Confira nossas oportunidades de trabalho
Check our job opportunies
Funções de divisão
No exemplo acima, após definirmos a função de aprendizagem, definimos duas funções de divisão:
A fklearn vem pré-empacotada com muitas funções de divisão para casos de uso comuns (você pode encontrar uma lista completa e descrições de quando elas são úteis aqui). A maioria das funções de divisão são projetadas para simular situações da vida real, onde normalmente os modelos são treinados com dados de um período de tempo, mas aplicados no futuro. A validação cruzada simples muitas vezes é insuficiente para modelos reais.
Avaliação personalizável
Muitas vezes isso surge na avaliação de modelos: métricas únicas e globais muitas vezes não contam a história completa. Podemos querer isolar os efeitos da ordenação e calibração do modelo ou examinar o desempenho em subgrupos específicos de nossa população. Também podemos estar interessados na evolução de uma métrica específica, em vez de apenas numa estimativa pontual.
Para isso, precisamos avaliar simultaneamente múltiplas métricas, divididas em dimensões (por exemplo: tempo e segmento de cliente). A fklearn possibilita isso ao nos permitir definir “árvores de avaliação”, combinando funções de avaliação individuais. Olhando novamente para o nosso exemplo, veja como definimos a função de avaliação:
Exemplo de definição de uma árvore de avaliação.
Esse trecho de código leva à árvore de avaliação mostrada abaixo:
Representação em árvore da função de avaliação definida acima.
Depois que final_eval_fn é aplicada aos dados, toda a árvore de avaliação é executada, e todos os resultados são retornados no registro. Isso significa que as correlações R2 e de Spearman serão calculadas primeiro para todos, e depois separadamente para cada segmento de usuário. Essas “árvores de avaliação” podem ser muito poderosas, permitindo que os cientistas de dados automatizem análises recorrentes.
Analisando resultados
Como você deve ter notado, a maioria das operações da fklearn retorna registros. Esses registros concentram informações valiosas, sejam parâmetros de modelo, metadados de conjuntos de dados ou resultados de validação. A fklearn pode ser muito detalhada com os registros, assim como nos arrependemos de não salvar as informações com frequência.
A fklearn também fornece funções úteis para extrair dados desses registros (eles podem ficar enormes), e é fácil criar gráficos de avaliação usando apenas os registros. Isso nos permite criar um código de avaliação genérico que recebe registros de execuções de treinamento e gera painéis com o desempenho do modelo, agilizando o processo de iteração. Aqui está um exemplo de extração de dados dos registros:
Exemplo de uso dos extratores da fklearn para obter resultados de registros.
Gráfico da curva de estabilidade da amostra, após extrair os dados dos registros. Ele mostra o desempenho do modelo (correlação de Spearman entre previsão e meta) ao longo do tempo, dividido por segmento. Também seria possível plotar a R2 a partir dos mesmos dados.
Felicidade funcional
Como uma observação final sobre o assunto validação, observe que a função de aprendizagem que definimos será usada repetidamente dentro dessas chamadas do validador, treinando vários modelos. Ficamos tranquilos em saber que é uma função pura, então nada que aconteça dentro da validação pode alterar a definição do nosso modelo. Além disso, ao validar nosso modelo, todas as etapas do nosso pipeline estão sendo aplicadas de forma consistente a todos os datafolds. Em última análise, isso significa que o nosso modelo final, que vai para produção, corresponde com precisão aos modelos que passam por todos esses cenários de validação.
Isso vale para ajustes ou seleção de recursos. Para ambos, a fklearn fornece funções com ideia semelhante ao validador: você define como dividir os dados, como avaliar o desempenho do modelo e reutilizar a função de aprendizagem.
Qual é o próximo passo?
Esta postagem conclui nossa breve introdução à biblioteca fklearn. Para mais exemplos dos recursos de validação de modelo da fklearn e outras ferramentas poderosas, verifique a documentaçãoaqui. Também esperamos que isso deixe você animado paratentar aprender fklearn sozinho.
Confira nossas oportunidades de trabalho
Check our job opportunies