Exercícios 10
Aula 10
1) Tuning
Neste exercício usaremos uma base de dados com decisões da Suprema Corte americana que contém informações sobre os casos julgados e posições dos juízes em suas arguições, entre outros (Kaufman, Kraft, e Sen 2019). No paper1, o resultado de acurácia encontrado é de 74% com um AdaBoost. Seu desafio é tentar replicar, e potencialmente superar, esse resultado – ou, melhor, ver se é possível replicar e superar o mesmo resultado montando uma pipeline do zero. Detalhes importantes:
1 Que, diga-se, tem alguns problemas que devem ficar nítidos a essa altura ponto do curso.
- Nosso target é a variável
winner
, que indica se uma dada petição foi vitoriosa no plenário - Teste outras métricas de validação (note que há o dobro de decisões positivas na base)
- Pense na melhor estratégia de validação a usar (o estudo original usa 10-fold cross validation) e justifique sua escolha (em comentários no código)
- Analise as variáveis na base e veja se não é possível pré-processar (ou mesmo remover) algumas que talvez sejam problemáticas
- Teste diferentes pipelines, com diferentes modelos e hiper-parâmetros
Os dados já limpos estão no GitHub do curso e podem ser carregados com:
<- "https://github.com/FLS-6497/datasets/raw/main/aula10/supreme.csv"
link <- readr::read_csv2(link) %>%
dados mutate_if(is.character, as.factor)
import pandas as pd
= 'https://github.com/FLS-6497/datasets/raw/main/aula10/supreme.csv'
link = pd.read_csv(link, sep=';', decimal=",") dados
2) Tuning com text as data
Neste exercício revisitaremos os dados do Projeto 1
para aplicar tuning às pipelines que vocês já montaram anteriormente (é possível ir no GitHub consultar seu código). Particularmente, tuning será útil para identificar melhores combinações de hiper-parâmetros de pré-processamento – número ou proporção mínima de ocorrência de palavras, número mínimo de ocorrência de uma palavra entre documentos, tamanho do \(N\) em \(N-grams\), etc.
Carregue os dados com:
<- "https://github.com/FLS-6497/datasets/blob/main/projeto1/discursos_pres_internacionais.csv?raw=true"
link <- readr::read_csv2(link) discursos
import pandas as pd
= 'https://github.com/FLS-6497/datasets/blob/main/projeto1/discursos_pres_internacionais.csv?raw=true'
link = pd.read_csv(link, sep=';') discursos
3) Melhorando as predições climáticas
Neste exercício final, usaremos tuning para dar um passo adicional na tarefa de predizer a temparatura máxima diária em São Bernardo do Campo (SP). Para isso, use seu código da última aula e o adapte para fazer tuning de hiper-parâmetros (é possível usar o dicionário do mlr3
já com combinações prontas de hiper-parâmetros).
Carregue os dados com:
<- "https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Sao%20Bernardo%20Do%20Campo_Cleaned.csv"
link <- readr::read_csv(link) dados
import pandas as pd
= 'https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Sao%20Bernardo%20Do%20Campo_Cleaned.csv'
link = pd.read_csv(link) dados
Ao final, valide a sua melhor pipeline com dados de Campinas:
<- "https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Campinas_Cleaned.csv"
campinas <- readr::read_csv(campinas) campinas
import pandas as pd
= 'https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Campinas_Cleaned.csv'
link = pd.read_csv(campinas) campinas