Machine Learning e a estatística

VI SEAJEst - 2017

Presidente Prudente, 31 de maio de 2017

Julio Trecenti

40% estatístico, 30% programador, 20% hacker, 10% matemático

Doutorando em Estatística no IME-USP
Diretor-Técnico da Associação Brasileira de Jurimetria
Vice-presidente do CONRE-3
Sócio da Platipus Consultoria
Sócio da Curso-R

Fazendo ciência de dados

Tipos de estatística

Descritiva -> visualização de dados

  • surpreende, mas não tem escala

Inferencial -> modelagem / aprendizado

  • tem escala, mas não surpreende

Exemplo de visualização

dataset cor x_mean y_mean x_var y_var
away -0.0641284 54.26610 47.83472 281.2270 725.7498
bullseye -0.0685864 54.26873 47.83082 281.2074 725.5334
circle -0.0683434 54.26732 47.83772 280.8980 725.2268
dino -0.0644719 54.26327 47.83225 281.0700 725.5160
dots -0.0603414 54.26030 47.83983 281.1570 725.2352
high_lines -0.0685042 54.26881 47.83545 281.1224 725.7635
h_lines -0.0617148 54.26144 47.83025 281.0953 725.7569
slant_down -0.0689797 54.26785 47.83590 281.1242 725.5537
slant_up -0.0686092 54.26588 47.83150 281.1944 725.6886
star -0.0629611 54.26734 47.83955 281.1980 725.2397
wide_lines -0.0665752 54.26692 47.83160 281.2329 725.6506
x_shape -0.0655833 54.26015 47.83972 281.2315 725.2250

Aprendizado estatístico

  • Supervisionado: prever ou estimar outputs a partir de inputs
    • Interesse em predição (qual é o \(y\) para um novo \(X\)?)
    • Interesse em inferência (como \(X\) afeta \(y\)?)

\[ y \approx f(X) \]

ou

\[ y = f(X) + \epsilon \]

  • Não supervisionado: estudar inputs; não existe output
    • dividir em grupos

\[ X \]

Livros

Overfitting

Deve ser uma das principais preocupações quando ajustamos um modelo

O que é overfitting?

O modelo está ajustando tendência e ruído.

Exemplo

Exemplo

modelo1 <- lm(y ~ x, data = dados)
modelo2 <- lm(y ~ poly(x, 9), data = dados)

erro_modelo1 <- mean((dados$y - predict(modelo1)) ^ 2)
erro_modelo2 <- mean((dados$y - predict(modelo2)) ^ 2)

round(c(erro_modelo1 = erro_modelo1, erro_modelo2 = erro_modelo2), 3)
## erro_modelo1 erro_modelo2 
##        0.013        0.000

Como fica graficamente?

Gerando mais dados

## erro_modelo1 erro_modelo2 
##        0.015        6.772

Como fica graficamente?

Como evitar overfitting?

  • Separar a base em 2 partes: treino e teste,
  • Avaliar o erro na base de teste
  • Validação cruzada

CAPTCHAs

captchaReceitaAudio::predizer(arq_aud)
## [1] "oa7tom"

Classificador e modelagem

No R

Avanços recentes

  • Quebrar o captcha usando sem picotar as letras.
    • Modelos de aprendizado profundo (deep learning).
  • MaxEnt 2017

Desafios no mercado

  • Mercado de trabalho crescente, mas
    • computação é necessário
    • nosso curso está incompleto / desatualizado
  • Problemas de linguagem
    • lidar com múltiplas definições
  • Empreendedorismo
    • startups
    • consultorias

Sigam-nos!