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:

    link <- "https://github.com/FLS-6497/datasets/raw/main/aula10/supreme.csv"
    dados <- readr::read_csv2(link) %>%
      mutate_if(is.character, as.factor)
    import pandas as pd
    
    link = 'https://github.com/FLS-6497/datasets/raw/main/aula10/supreme.csv'
    dados = pd.read_csv(link, sep=';', decimal=",")

    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:

    link <- "https://github.com/FLS-6497/datasets/blob/main/projeto1/discursos_pres_internacionais.csv?raw=true"
    discursos <- readr::read_csv2(link)
    import pandas as pd
    
    link = 'https://github.com/FLS-6497/datasets/blob/main/projeto1/discursos_pres_internacionais.csv?raw=true'
    discursos = pd.read_csv(link, sep=';')

    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:

    link <- "https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Sao%20Bernardo%20Do%20Campo_Cleaned.csv"
    dados <- readr::read_csv(link)
    import pandas as pd
    
    link = 'https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Sao%20Bernardo%20Do%20Campo_Cleaned.csv'
    dados = pd.read_csv(link)

    Ao final, valide a sua melhor pipeline com dados de Campinas:

    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)
    import pandas as pd
    
    link = 'https://raw.githubusercontent.com/jacobwright32/Web_Scraper_AI_Core_Project/bb4865ae568e23ab8fadb6ea58cf117df2164ef3/web%20scraping/Cleaned%20Data/Brazil_Campinas_Cleaned.csv'
    campinas = pd.read_csv(campinas)

    Referências

    Kaufman, Aaron Russell, Peter Kraft, e Maya Sen. 2019. "Improving supreme court forecasting using boosted decision trees". Political Analysis 27 (3): 381–87.