class: title-slide, center .pull-left[ # Machine Learning com `tidymodels`: Esquenta ## Bruna Wundervald ### R-Ladies São Paulo ### Maio, 2021 ] .pull-right[ <br> <br> <div class="row"> <div class="row"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/tidymodels.svg" width="200"> </div> <div class="column"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/parsnip.svg" width="300"> </div> <div class="column"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/broom.svg" width="200"> </div> <div class="column"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/rsample.svg" width="300"> </div> <div class="column"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/recipes.svg" width="300"> </div> </div> ] ??? Welcome to the webinar on sharing on short notice Where we'll show you how to get your teaching materials online with R Markdown. --- name: clouds class: center, middle background-image: url(images/sea.jpg) background-size: cover <img style="border-radius: 50%;" src="https://avatars.githubusercontent.com/u/18500161?s=460&u=34b7f4888b6fe48b3c208beb51c69c146ae050cf&v=4" width="150px"/> ### Bruna Wundervald [GitHub: @brunaw](https://github.com/brunaw) [Twitter: @bwundervald](https://twitter.com/bwundervald) [Page: http://brunaw.com/](http://brunaw.com/) --- class: middle, center ## .big-text[Hoje] <div class="flex" style="margin: 0 1em;"> <div class="column"> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/tidymodels.svg"" style="width: 75%;"> </div> ??? Here's who I know you are... -- <div class="column"style="margin: 0 1em;"> <h3> Engenharia de variáveis </h3> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/recipes.svg" style="width: 65%;"> </div> ??? -- <div class="column"style="margin: 0 1em;"> <h3> Reamostragem </h3> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/rsample.svg" style="width: 65%;"> </div> ??? -- <div class="column"style="margin: 0 1em;"> <h3> Interface de modelagem </h3> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/parsnip.svg" style="width: 65%;"> </div> ??? -- <div class="column"style="margin: 0 1em;"> <h3> Workflows </h3> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/ workflows.svg" style="width: 65%;"> </div> ??? -- <div class="column"style="margin: 0 1em;"> <h3> Comparação de modelos </h3> <img src="https://raw.githubusercontent.com/rstudio/hex-stickers/master/SVG/ broom.svg" style="width: 65%;"> </div> ??? You have R Markdown files for teaching... --- class: middle # O pacote `tidymodels` - Criado e mantido por [Max Kuhn](https://github.com/topepo) e o time `tidymodels` - Coleção unificada de pacotes para modelagem & machine learning em `R` - Se integra facilmente com os outros pacotes do `tidyverse` - Focado em eficiência & reproducibilidade --- background-color: #fef9c8 class: middle ## Machine Learning: Passos básicos 1. Separação em treino e teste com `rsample` 2. Engenharia de variáveis com `recipes` 3. Especificação de modelos e ajuste com `parsnip` 4. Avaliação e seleção de modelos com `broom` --- class: middle background-color: #fef9c8 # 1. Separação em treino e teste --- class: middle # 1. Separação em treino e teste > Função principal: possibilitar a validação de algoritmos de machine learning - Separação de uma base de treino (geralmente entre 70% e 90% dos dados), na qual o modelo será ajustado - Separação de uma base de teste (o restante dos dados), na qual o modelo será avaliado em dados não vistos durante o treino - Como o modelo se comporta caso eu tenha novos dados? - É um passo **muito** importante --- class: middle background-color: #fef9c8 # 2. Engenharia de variáveis (...ou "feature engineering") --- class: middle # 2. Engenharia de variáveis > Função principal: transformar e criar variáveis que tragam informação ao modelo - Pode ser a transformação de variáveis (log, imputação, normalização, transformação em número/matriz) - Ou pode ser a criação de novas variáveis: - Operações entre variáveis já existentes - Extração de informação de texto ou datas - Agrupamentos - Interações entre variáveis - É um processo bem subjetivo --- class: middle background-color: #fef9c8 # 3. Especificação de modelos e ajuste --- class: middle # 3. Especificação de modelos e ajuste > Função principal: definir e ajustar os modelos escolhidos - Definir um ou mais modelos que serão ajustado e comparados - Definir os hyperparâmetros de cada modelo e se eles serão "tunados" - Tunagem: seleção de valores ótimos para os hyperparâmetros - Ajuste dos modelos definidos --- class: middle background-color: #fef9c8 # 4. Avaliação e seleção de modelos --- class: middle # 4. Avaliação e seleção de modelos > Função principal: calcular as métricas de predição e selecionar os melhores modelos - Métricas mais comuns: acurácia (classificação) e erro quadrático médio (regressão) - A métrica escolhida é calculada utilizando a base de teste - Os modelos são comparados e selecionados, geralmente em termos da acurácia - Tipo do algoritmo - Valores dos hyperparâmetros --- class: bottom, left, inverse <img style="border-radius: 50%;" src="https://avatars.githubusercontent.com/u/18500161?s=460&u=34b7f4888b6fe48b3c208beb51c69c146ae050cf&v=4" width="150px"/> ## Obrigada! ### Me encontre em... [GitHub: @brunaw](https://github.com/brunaw) [Twitter: @bwundervald](https://twitter.com/bwundervald) [Página pessoal: http://brunaw.com/](http://brunaw.com/)