Aprendizado de Máquina para Tomada de Decisão

Introdução à Aprendizagem de Máquina com Tidymodels

Profs. Ana Hermínia Andrade, Cristina Katya T. T. Mendes e Marcelo R. P. Ferreira

PPGMDS/UFPB

Conceitos básicos em Aprendizagem de Máquina

Aprendizagem de Máquina

  • Aprendizagem de Máquina (AM) ou Machine Learning (ML) é uma subárea da Inteligência Artificial que estuda modelos e algoritmos de aprendizado a partir de dados.

  • Os modelos ou algoritmos são determinados pelo tipo de dado que se tem disponível e pelo tipo de tarefa a ser executada.

  • Esses modelos são automatizados de modo a melhorarem o processo de aprendizagem com base em suas experiências, sem a necessidade de serem reprogramados (ou seja, sem qualquer assistência humana).

  • O produto dos modelos ou algoritmos é composto por coeficientes, pesos ou regras e o processo de aprendizagem se dá pela atualização dessas características a partir de novas experiências (novos dados).

  • Originalmente, os métodos de AM eram de cunho estritamente computacional. Mas, a partir do final dos anos 90, passaram a ter muitas interseções com a estatística.

Aprendizagem de Máquina

O que é aprendizagem de máquina? Créditos da imagem: https://vas3k.com/blog/machine_learning/

Mas, o que é aprender?

  • Ganhar conhecimento através do estudo, experiência ou sendo ensinado;

  • Aprendizagem X Aprendizado

    • Aprendizagem: é o processo pelo qual se adquire o conhecimento \(\rightarrow\) algoritmos;
    • Aprendizado é o conhecimento adquirido \(\rightarrow\) modelos;
  • Em Aprendizagem de Máquina, focamos no estudo de algoritmos para adquirir descrições estruturais (modelos) sobre exemplos de dados;

  • Os algoritmos da Aprendizagem de Máquina permitem que escrevamos programas cujo desempenho tende a melhorar à medida que “ganham experiência”;

  • Essa experiência corresponde aos dados que são fornecidos ao programa;

  • Os algoritmos buscam extrair hipóteses dos dados.

Tarefa, Medida e Experiência

  • De uma maneira geral, o uso da Aprendizagem de Máquina para solucionar uma tarefa envolve:
    • Otimizar a realização de uma tarefa \(T\);
    • Em relação a uma medida de desempenho \(P\);
    • Com base na experiência \(E\);
  • Exemplo:

Base de dados mnist
  • Tarefa: reconhecer e classificar caracteres manuscritos;
  • Medida: porcentagem de caracteres classificados corretamente;
  • Experiência: base de dados de caracteres manuscritos com a respectiva classificação.

Tipos de Aprendizagem de Máquina

Aprendizagem de Máquina Clássica. Créditos da imagem: https://vas3k.com/blog/machine_learning/

Tipos de Aprendizagem de Máquina

Visão mais ampla da Aprendizagem de Máquina. Créditos da imagem: https://vas3k.com/blog/machine_learning/

Tipos de Aprendizagem de Máquina

  • Aprendizagem supervisionada:
    • O algoritmo de aprendizagem recebe um conjunto de exemplos de treinamento em que um rótulo alvo é conhecido;
    • Cada exemplo é descrito por um vetor de valores (variáveis) e pelo rótulo (classe ou valor alvo) associado;
    • Inclui tarefas de classificação (\(\hat{y} = \textrm{arg}\max_y P(Y=y|X=\mathbf{x})\)) e de regressão (\(\hat{y} = \mathbb{E}[Y|X=\mathbf{x}]\));

Classificação X Regressão

Tipos de Aprendizagem de Máquina

  • Exemplos de métodos supervisionados para a tarefa de classificação:
    • Regressão Logística;
    • \(K\)-NN;
    • Redes Neurais Artificiais;
    • Árvores de Classificação;
    • Support Vector Machines;
    • Extreme Gradient Boosting;
    • Random Forests.
  • Exemplos de métodos supervisionados para a tarefa de regressão:
    • Regressão Linear Múltipla;
    • \(K\)-NN;
    • Redes Neurais Artificiais;
    • Árvores de Regressão;
    • Support Vector Machines;
    • Extreme Gradient Boosting;
    • Random Forests.

Algumas famílias de modelos supervisionados

  • Depois de definir a tarefa, preparar os dados e escolher a métrica de avaliação, precisamos escolher um modelo;
  • Diferentes modelos capturam diferentes tipos de padrão nos dados;
  • Alguns priorizam interpretabilidade; outros priorizam flexibilidade preditiva;
  • Aqui, veremos algumas famílias clássicas de modelos de forma introdutória, com exemplos de aplicações em saúde.

Modelos lineares

  • Os modelos lineares costumam ser um dos primeiros pontos de partida em problemas de regressão e classificação;
  • Em regressão, buscam representar a resposta como uma combinação linear das variáveis explicativas;
  • Em classificação, aparecem em abordagens como regressão logística e análise discriminante;
  • Têm como vantagens a simplicidade, a interpretabilidade e a facilidade de comunicação dos resultados;
  • Em contrapartida, podem ter desempenho limitado quando a relação entre as variáveis é fortemente não linear.

Modelos lineares - Exemplos em saúde

  • Estimar tempo de internação a partir de idade, comorbidades e exames laboratoriais;
  • Predizer risco de hipertensão, diabetes ou reinternação hospitalar com regressão logística;
  • Avaliar associação entre fatores clínicos e presença/ausência de determinado desfecho.

k-vizinhos mais próximos (kNN)

  • O kNN classifica ou prediz uma nova observação com base nos exemplos mais semelhantes já observados;
  • Em classificação, a classe pode ser definida pela maioria entre os vizinhos mais próximos;
  • Em regressão, a predição pode ser feita pela média das respostas dos vizinhos;
  • É um método intuitivo e útil quando a proximidade entre observações é informativa;
  • Entretanto, depende fortemente da métrica de distância, da escala das variáveis e da escolha de \(k\).

k-vizinhos mais próximos (kNN) - Exemplos em saúde

  • Classificar pacientes em grupos de risco com base em idade, pressão arterial, IMC e marcadores laboratoriais;
  • Identificar perfil semelhante de pacientes para apoiar triagem clínica;
  • Classificar lesões ou perfis biométricos a partir de medidas extraídas de exames.

Árvores de decisão

  • Árvores de decisão constroem regras sequenciais de particionamento dos dados;
  • Produzem estruturas do tipo “se-então”, o que facilita a interpretação;
  • Podem ser aplicadas tanto a problemas de classificação quanto de regressão;
  • Conseguem capturar não linearidades e interações entre variáveis sem exigir muitas transformações;
  • Uma limitação importante é que árvores isoladas podem ser instáveis e suscetíveis a sobreajuste.

Árvores de decisão - Exemplos em saúde

  • Estimar probabilidade de complicação pós-operatória a partir de características pré-cirúrgicas;
  • Estimar o risco de complicação cardíaca de um paciente com base em três variáveis.

flowchart TD
    A[Paciente tem pressão alta?]

    A -->|Não| B[Risco baixo]
    A -->|Sim| C[Paciente tem diabetes?]

    C -->|Não| D[Risco médio]
    C -->|Sim| E[Idade maior que 60 anos?]

    E -->|Sim| F[Risco alto]
    E -->|Não| G[Risco médio]

Máquinas de Vetores de Suporte (SVM)

  • As SVM procuram encontrar uma fronteira de decisão com boa separação entre classes;
  • A ideia central é construir um hiperplano com margem adequada entre grupos;
  • Em sua forma mais flexível, podem usar kernels para lidar com separações não lineares;
  • Costumam apresentar bom desempenho em bases com muitas variáveis;
  • Em compensação, tendem a exigir maior cuidado no ajuste de hiperparâmetros.

Máquinas de Vetores de Suporte (SVM) - Exemplos em saúde

  • Classificação de tumores em benignos e malignos a partir de atributos extraídos de imagens ou biópsias;
  • Diagnóstico auxiliar baseado em exames laboratoriais multivariados;
  • Classificação de sinais biomédicos, como traçados de ECG ou EEG, em padrões normais e alterados.

Redes neurais artificiais

  • Redes neurais são modelos compostos por camadas de unidades conectadas por pesos;
  • Sua principal vantagem é a capacidade de representar relações complexas entre entradas e saídas;
  • Redes multicamadas são bastante flexíveis e podem ser usadas em regressão e classificação;
  • Em problemas mais complexos, podem superar modelos mais simples em desempenho preditivo;
  • Em geral, exigem mais dados, maior custo computacional e têm menor interpretabilidade.

Redes neurais artificiais - Exemplos em saúde

  • Detecção de padrões em imagens médicas, como radiografias, tomografias e mamografias;
  • Predição de risco clínico a partir de grande número de variáveis do prontuário eletrônico;
  • Identificação de padrões em sinais fisiológicos e monitoramento contínuo de pacientes.

Comparando essas famílias

Família Ponto forte Limitação Exemplo em saúde
Modelos lineares Interpretação simples Menor flexibilidade risco de doença, tempo de internação
kNN Intuitivo e local Sensível à escala e ao (k) classificação de perfis de pacientes
Árvores Regras fáceis de explicar Instabilidade e sobreajuste triagem e apoio à decisão clínica
SVM Boa separação e flexibilidade Ajuste mais delicado classificação diagnóstica
Redes neurais Alta capacidade de modelagem Maior complexidade imagens médicas e sinais biomédicos

Comparando essas famílias

  • Não existe um único modelo ideal para todos os problemas;
  • Em aplicações reais, a escolha depende do objetivo, dos dados disponíveis e do equilíbrio entre desempenho e interpretabilidade;
  • Na área da saúde, além da acurácia, também são relevantes transparência, reprodutibilidade e possibilidade de interpretação clínica;
  • Por isso, diferentes modelos devem ser comparados de forma sistemática.

Tipos de Aprendizagem de Máquina

  • Nem todo problema em aprendizagem de máquina envolve prever uma variável resposta já conhecida;
  • Em muitos casos, o interesse está em descobrir estruturas nos dados ou em aprender estratégias de decisão ao longo do tempo;
  • Por isso, além dos modelos supervisionados, também é importante reconhecer o papel das abordagens não supervisionadas e da aprendizagem por reforço.

Tipos de Aprendizagem de Máquina

  • Aprendizagem não-supervisionada:
    • O indutor analisa os exemplos fornecidos e tenta determinar se existem padrões previamente desconhecidos nos dados;
    • Comumente, o objetivo é encontrar \(P(X)\), ou seja, a distribuição de probabilidade de \(X\);
    • Tarefas não-supervisionadas incluem: agrupamento, redução da dimensionalidade, detecção de anomalias e regras de associação;

Ilustração da tarefa de agrupamento

Modelos não supervisionados

  • Na aprendizagem não supervisionada, não há uma variável resposta conhecida para guiar o ajuste do modelo;
  • O objetivo é encontrar estruturas, padrões, grupos ou representações úteis diretamente a partir dos dados;
  • Esse tipo de abordagem é especialmente útil quando queremos explorar bases complexas, resumir informação ou identificar perfis semelhantes entre observações;
  • Entre as tarefas mais comuns estão o agrupamento (clustering) e a redução de dimensionalidade.

Agrupamento e redução de dimensionalidade

  • Em agrupamento, o objetivo é reunir observações semelhantes em grupos;
  • Em redução de dimensionalidade, buscamos representar os dados com menos variáveis, preservando o máximo possível da informação relevante;
  • Essas abordagens podem ser úteis para exploração inicial, visualização, segmentação e preparação para análises posteriores;
  • Diferentemente da classificação, aqui não existe uma “classe correta” previamente informada.

Agrupamento e redução de dimensionalidade - Exemplos em saúde

  • Identificação de perfis de pacientes com características clínicas semelhantes;
  • Agrupamento de indivíduos segundo padrões de comorbidades, exames laboratoriais ou uso de serviços de saúde;
  • Exploração de subgrupos em bases epidemiológicas extensas;
  • Redução da dimensionalidade de dados ômicos, sinais fisiológicos ou grandes conjuntos de variáveis clínicas para facilitar visualização e modelagem.

Quando usar abordagens não supervisionadas?

  • Quando não há rótulos confiáveis disponíveis;
  • Quando o objetivo é explorar a estrutura dos dados antes de construir modelos preditivos;
  • Quando queremos identificar perfis ocultos, padrões de similaridade ou possíveis subpopulações;
  • Quando há muitas variáveis e precisamos resumir a informação.

Tipos de Aprendizagem de Máquina

  • Aprendizagem por reforço:
    • Envolve situações em que um ou mais agentes aprendem por tentativa e erro ao atuar sobre um ambiente dinâmico;
    • Não há uma fonte externa de exemplos. Há apenas a própria experiência do agente;
    • É necessário definir que ações o agente pode desempenhar e qual é a medida de desempenho.

Exemplo de um sistema de aprendizado por reforço

Aprendizagem por reforço

  • Na aprendizagem por reforço, um agente interage com um ambiente ao longo do tempo;
  • A cada etapa, o agente escolhe uma ação e recebe uma recompensa ou penalização;
  • O objetivo é aprender uma estratégia de decisão que maximize a recompensa acumulada;
  • Diferentemente da aprendizagem supervisionada, não há uma resposta correta fornecida diretamente para cada exemplo;
  • O aprendizado ocorre por tentativa, erro e retroalimentação do ambiente.

Elementos centrais da aprendizagem por reforço

  • Agente: quem toma a decisão;
  • Ambiente: o contexto em que a decisão ocorre;
  • Ação: escolha realizada pelo agente;
  • Recompensa: retorno recebido após a ação;
  • Política: estratégia usada para decidir o que fazer em cada situação.

Aprendizagem por reforço - Exemplos em saúde

  • Apoio à definição sequencial de condutas terapêuticas;
  • Ajuste dinâmico de intervenções ao longo do acompanhamento de um paciente;
  • Otimização de alocação de recursos em sistemas de saúde;
  • Planejamento adaptativo de ações preventivas ou de monitoramento clínico.

Diferenças entre os tipos de aprendizagem

Tipo de aprendizagem Ideia central Exemplo de uso
Supervisionada prever um desfecho conhecido risco de doença, diagnóstico
Não supervisionada descobrir padrões sem rótulos perfis de pacientes, agrupamentos
Por reforço aprender decisões sequenciais por recompensa estratégias adaptativas de tratamento

As duas culturas: Modelos X Algoritmos

  • A verdadeira “caixa-preta”.

As duas culturas: Modelos X Algoritmos

  • Vamos assumir que a estimação será feita com base em \(S\), uma amostra i.i.d. da distribuição conjunta de \((\mathbf{X},Y)\);

  • \(S\) é comumente chamada de amostra de treinamento.

As duas culturas: Modelos X Algoritmos

  • Data modeling culture: Abordagem da modelagem estatística clássica.

  • Exemplo:

\[ y_i=\beta_0+\beta_1x_{1i}+\cdots+\beta_px_{pi}+\varepsilon_i, \]

\[ \varepsilon_i\sim N(0,\sigma^2),\quad i=1,\ldots,n. \]

  • Algorithm modeling culture: Aprendizagem de máquina.

  • Exemplo:

\[ y_i=f(\mathbf{x}_i) + \varepsilon_i,\quad i=1,\ldots,n. \]

As duas culturas: Modelos X Algoritmos



Os benditos dados…

Dados tabulares ou estruturados

  • Atributos/Variáveis podem ser físicos ou abstratos, como sintomas;
  • Cada exemplo/observação é descrito por um conjunto de variáveis de entrada ou vetor de características;
  • Cada exemplo corresponde a uma ocorrência/observação;
  • Os atributos estão associados a propriedades das observações;
  • Os dados que usamos para treinar nossos modelos são agregados em um conjunto ou base de dados (data set ou dataset);
  • O conjunto de dados costuma ser representado por uma matriz \(\mathbf{X}_{n \times p}\)
    • \(n\) é o número de instâncias;
    • \(p\) é o número de atributos de cada observação e define a dimensionalidade do espaço do problema.

Dados tabulares ou estruturados

  • Este conjunto aparentemente tem \(p=10\) variáveis;

  • No entanto, a primeira e a segunda são apenas identificadores de paciente;

  • E a última, que indica o diagnóstico, possivelmente será selecionada como alvo em uma tarefa de classificação, sendo tratada como uma variável separada, digamos, \(Y\);

  • Portanto, \(p=7\).

Dados não-estruturados

  • Dados não-estruturados representam múltiplos tipos de dados que não podem ser facilmente analisados ou categorizados;

  • Usualmente são armazenados em formatos nativos;

  • Não podem ser organizados em linhas e colunas;

  • Imagens, áudio, vídeo, arquivos de texto, postagens em redes sociais, mensagens em aplicativos de comunicação, etc.;

  • Requerem, em geral, mais espaço de armazenamento;

  • Estimado em torno de 80% dos dados das empresas.

Pré-processamento de dados tabulares

Pré-processamento de dados tabulares

  • Antes de alimentar um algoritmo de aprendizagem de máquina com o conjunto de dados observados, comumente precisamos realizar diversas atividades de preparação dos dados, incluindo:
    • Eliminação manual de atributos;
    • Integração de dados;
    • Amostragem;
    • Balanceamento;
    • Limpeza;
    • Redução de dimensionalidade;
    • Transformação.

Pré-processamento de dados tabulares

  • O objetivo é melhorar a qualidade dos dados, i.e., tornar mais fácil o ajuste de modelos;

  • Minimizam problemas de ruídos, anomalias/outliers, valores/rótulos incorretos, duplicados ou ausentes;

  • Também podem adequar os dados para uso de determinados algoritmos, e.g. algoritmos com entradas exclusivamente numéricas.

Eliminação manual de atributos

  • Removemos atributos que não contribuem para a construção dos modelos;
  • Nesse momento, o conhecimento e a experiência dos especialistas são fundamentais.

Integração de dados

  • Essa atividade trata da junção de duas ou mais bases de dados que possuem informações sobre as mesmas observações;

  • Devemos buscar atributos comuns nos conjuntos que serão combinados;

    • Exemplos: CPF, CNPJ e identificadores de uma maneira geral, além de outros atributos que podem estar repetidos;
  • Atributos cruzados devem ter um valor único para cada observação.

Amostragem de dados

  • Alguns algoritmos de aprendizagem de máquina podem ter dificuldade de lidar com grandes volumes de dados;

  • Assim, torna-se útil obter uma amostra representativa dos dados para treinar o modelo;

    • Os dados da amostra devem seguir a mesma distribuição dos dados originais (qual?);
  • Diferentes amostras podem gerar modelos diferentes.

Balanceamento de dados

  • Em certas aplicações (como na medicina), é comum que uma classe seja muito mais frequente do que outra;

  • Nesses casos, o modelo de AM pode aprender a “chutar” sempre a classe mais frequente;

  • Soluções:

    • Equalizar os tamanhos das classes
      • Subamostragem (Undersampling);
      • Sobreamostragem (Oversampling);
      • SMOTE (Synthetic Minority Oversampling Technique);
    • Classificação baseada em custos;
    • Ajustar um modelo por classe.

Balanceamento de dados

Ilustração de Undersampling e Oversampling

Ilustração do método SMOTE

Limpeza dos dados

  • Remove problemas relacionados à qualidade dos dados;

  • Dados ruidosos: erros de registro, variações de qualidade de sinal.

    • Diferente de outliers;
  • Inconsistentes: contradizem valores de outros atributos do mesmo objeto;

  • Redundantes: dois ou mais objetos/atributos com os mesmos valores;

  • Incompletos (com ausência de valores).

Dados incompletos

  • Possibilidades de correção:
    • Eliminar instâncias/colunas com valores ausentes;
    • Usar média/moda/mediana dos valores conhecidos;
    • Criar um novo valor que indique que o atributo tem valor faltante;
    • Estimar a distribuição conjunta dos atributos para depois preencher os faltantes com os valores mais prováveis;
    • Usar algoritmos capazes de lidar com dados ausentes.

Dados inconsistentes

  • Problemas na anotação dos dados podem resultar em atributos de entrada que não explicam o atributo alvo/classe.

Dados redundantes

  • O mesmo atributo pode aparecer em dois formatos diferentes. Exemplo: idade X data de nascimento;

  • Atributos podem ser altamente correlacionados;

    • Não há acréscimo de informação ao manter os dois;
    • Mantém-se apenas um;
    • Boa parte dos algoritmos de AM assume que não há correlação entre atributos.

Outliers

  • Dados que diferem bastante dos outros elementos do conjunto de dados ou de sua classe;

  • Podem ser retirados ou mantidos, caso deseje-se gerar modelos que modelam a sua existência;

  • Existem técnicas cujo objetivo é detectar outliers.

Transformação de dados

  • Frequentemente é necessário transformar os tipos ou valores dos atributos. Pode-se, por exemplo, discretizar valores numéricos ou transformá-los em intervalos;

  • Pode-se transformar atributos qualitativos com \(k\) categorias em \(k\) ou \(k-1\) atributos binários: One-hot-encoding e Variáveis dummy.

    • Se existirem muitas categorias, isso pode tornar a dimensionalidade muito alta. Nesse caso, pode-se usar frequency encoding, em que as categorias são substituídas por suas frequências;
  • Quando os atributos têm escalas muito diferentes, fazemos normalização:

\[ X_{novo} = \frac{X - X_{min}}{X_{max} - X_{min}}, \]

Em que \(X_{min}\) é o valor mínimo e \(X_{max}\) é o valor máximo. Novos valores no intervalo \([0, 1]\).

\[ Z = \frac{X - \hat{\mu}}{\hat{\sigma}}, \]

em que \(\hat{\mu}\) é a média amostral e \(\hat{\sigma}\) é o desvio-padrão amostral. Essa transformação lida melhor com outliers.

Avaliação de modelos

  • Para o contexto de aprendizado supervisionado, seja \(\mathbf{X}\) um vetor de variáveis de entrada, sendo suas componentes denotadas por \(X_{j}\), com \(j=1,\ldots,p\). Enquanto a variável de saída será denotada por \({Y}\);

  • Tipicamente \(\mathbf{X} \in \mathbb{R}^p = \mathcal{X}\) e \(Y \in C = \mathcal{Y} \subseteq \mathbb{R}\), em que \(C=\{1,2,\ldots,K\}\) é o conjunto dos índices das classes;

  • Nosso interesse está na relação \[ f: \mathcal{X} \rightarrow \mathcal{Y} \] \[ \mathbf{x} \rightarrow f(\mathbf{x}); \]

  • Seja \(S = \left\lbrace \left( \mathbf{x}_{1},y_{1}\right) \ldots \left( \mathbf{x}_{n},y_{n}\right) \right\rbrace\) contido em \(\mathcal{X} \times \mathcal{Y}\);

  • Desejamos encontrar a função \(\hat{f}: \mathcal{X} \rightarrow \mathcal{Y}\) usando \(S\) tal que \[ \hat{f}(\mathbf{x}) \approx f(\mathbf{x}),\quad\forall\mathbf{x} \in \mathcal{X}. \]

Avaliação de modelos

  • Mas, como avaliamos o quão bem estamos estimando \(f\)?

  • Para a tarefa de regressão, a medida mais comumente utilizada é o erro quadrático médio (MSE), dado por: \[ MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{f}(\mathbf{x}_i))^2; \]

  • Um valor pequeno para o MSE indica que as respostas previstas estão próximas das respostas verdadeiras;

  • Outras medidas que são utilizadas em tarefas de regressão são: o erro absoluto médio (MAE), o erro percentual absoluto médio (MAPE) e o coeficiente de determinação (\(R^2\)).

Avaliação de modelos

  • Para a tarefa de classificação, a medida mais comumente utilizada é a taxa de erro de classificação ou, com interpretação em sentido oposto, a acurácia;

  • A construção da matriz de confusão, que é uma tabela de contingência entre as classes preditas e as classes verdadeiras (conhecidas) também é comum;

  • Outras medidas tipicamente utilizadas são:

    • \(\textrm{F}_1\)-escore;
    • Precisão;
    • Especificidade;
    • Sensibilidade (Cobertura, Revocação ou Recall);
    • Curva ROC: Sensibilidade (Taxa de Verdadeiros Positivos) \(\times\) \(1-\)Especificidade (Taxa de Falsos Positivos);
    • Área sob a curva ROC (AUC ou AUROC);
    • Kappa, etc.

Avaliação de modelos



Matriz de confusão para o caso binário e medidas de avaliação

O sonho da matriz de confusão perfeita

  • Isso pode acontecer em treinamento, mas é muito improvável em teste e costuma indicar sobreajuste (overfitting).

Exemplo de matriz de confusão perfeita para o caso binário

Identificando problemas na matriz de confusão



\[\begin{align*} Acc&=\frac{TP+TN}{TP+FP+TN+FN}\\ &=\frac{10+1000}{10+20+1000+40}\\ &=\frac{1010}{1070}\\ &=0{,}94. \end{align*}\]

Neste exemplo, temos alta acurácia: só erramos 60 observações, dentre 1070.

Identificando problemas na matriz de confusão

  • Vamos calcular a precisão e a cobertura (recall), para avaliar o desempenho com relação à classe positiva.

\[\begin{align*} Prec&=\frac{TP}{TP+FP}\\ &=\frac{10}{10+20}=0{,}33\\ Rec&=\frac{TP}{TP+FN}\\ &=\frac{10}{10+40}=0{,}20. \end{align*}\]

Apesar da alta acurácia, o classificador tem péssimo desempenho para a classe positiva.

Identificando problemas na matriz de confusão



\[\begin{align*} Acc&=\frac{TP+TN}{TP+FP+TN+FN}\\ &=\frac{1020}{1070}\\ &=0{,}95. \end{align*}\]

Na verdade, um classificador que apenas “chute” que todas as observações são da classe negativa tem maior acurácia.

Identificando problemas na matriz de confusão

  • Portanto, é importante não “confiar cegamente” no resultado de acurácia de seu classificador, principalmente se a proporção de observações de uma classe for muito maior do que a proporção de observações da outra;

  • Uma boa regra é ter em mente as proporções das classes no conjunto de dados: você deve esperar que seu classificador tenha acurácia pelo menos maior do que a proporção da maior classe.

Over/Underfitting (Sobre/Sob-ajuste)



Over/Underfitting (Sobre/Sob-ajuste)

  • Essas condições de ajuste podem ser detectadas se compararmos as acurácias ou matrizes de confusão de treinamento e de teste;

  • Underfitting mostrará desempenhos de treinamento e teste parecidos e ruins;

  • Overfitting aparecerá como um desempenho de treinamento muito bom (às vezes perfeito) acompanhado de desempenho de teste péssimo;

  • Ajuste apropriado aparece como desempenhos de treinamento e teste parecidos e razoáveis/bons.

Over/Underfitting (Sobre/Sob-ajuste) em regressão



Curva ROC

  • A curva ROC é utilizada para visualizar as diferentes taxas de verdadeiros/falsos positivos de acordo com diferentes limiares.

Ilustração de uma curva ROC

Curva ROC

  • Idealmente, queremos que a forma da curva se aproxime ao máximo da forma de um triângulo, ou seja, queremos que a curva se aproxime ao máximo do canto superior esquerdo ou ponto \([0,1]\);

  • A área embaixo da curva ROC (AUC ou AUROC) indica o quão bom é o desempenho de um classificador independentemente do limiar;

  • Um classificador aleatório tem AUC\(=0{,}5\).

Particionamento de dados

Particionamento de dados

  • Precisamos lembrar que os conjuntos de dados que utilizamos para treinar e testar modelos são, em geral, amostras, e não a população inteira;

  • Além disso, raramente podemos garantir que as amostras foram obtidas seguindo processos estatisticamente corretos;

  • Para tomarmos decisões com significância estatística, precisamos usar nossas amostras de forma que possamos extrair o máximo de informação;

  • Algumas estratégias nos ajudam a simular quão bem um modelo de aprendizagem de máquina é capaz de generalizar seu aprendizado na prática.

Holdout

  • Holdout consiste em particionar nosso conjunto de dados em dois conjuntos disjuntos, um conjunto de treinamento, que usamos para treinar os modelos, e um conjunto de teste, usado para avaliar o poder de generalização dos modelos;

  • Não há uma regra estabelecida para o percentual de observações nos conjuntos de treinamento e teste;

  • Em geral seleciona-se entre 70% e 80% das amostras para o conjunto de treinamento, e o restante para o conjunto de teste;

  • Para que as proporções de observações entre as classes (tarefa de classificação) ou entre quantis determinados da variável alvo (tarefa de regressão) sejam mantidas, deve-se usar amostragem aleatória estratificada;

  • A fim de se avaliar os modelos em diferentes subamostras pode-se repetir o processo de particionamento um número de vezes (holdout repetido).

Holdout

Esquema de particionamento holdout

\(K\)-fold cross-validation

  • Validação cruzada é usada para avaliar a capacidade do modelo de reagir corretamente a dados que não foram usados para treiná-lo;

  • Pode ajudar a detectar problemas como over/underfitting e seleção enviesada de amostras;

  • Seu funcionamento é simples: divide-se o conjunto em \(K\) subconjuntos (folds) e, a cada rodada, usa-se um subconjunto para teste (validação) e os outros para treinamento;

  • Esse processo faz com que os conjuntos de treinamento e teste (validação) sejam disjuntos;

  • Assim como no holdout, deve-se utilizar amostragem aleatória estratificada.

\(K\)-fold cross-validation

Esquema de particionamento \(K\)-fold cross-validation

Otimização de hiperparâmetros

Otimização de hiperparâmetros

  • Um hiperparâmetro é um parâmetro que controla o processo de aprendizagem.

    • Note a diferença para os parâmetros que são aprendidos pelo ajuste do modelo, como pesos de redes neurais ou coeficientes da regressão;
  • Cada algoritmo pode precisar de diferentes valores de hiperparâmetros que influenciam a capacidade de ajustar o modelo aos dados;

  • Assim, a otimização (tuning) de hiperparâmetros é um processo que busca encontrar a tupla de valores de hiperparâmetros que produzem o melhor modelo para um dado problema e uma dada métrica de avaliação.

    • Costuma ser feita por meio de validação cruzada.

Otimização de hiperparâmetros

Esquema de particionamento Holdout combinado com \(K\)-fold cross-validation

Grid search

  • Ambos são contínuos, então definimos um conjunto finito de valores razoáveis para nossa busca: \[\begin{align*} C &\in \{10, 100, 1000\}\\ \gamma &\in \{0.1, 0.2, 0.5, 1.0\} \end{align*}\]

  • O grid search vai então treinar um SVM com cada par \((C, \gamma)\) possível e avaliá-lo no conjunto de validação;

  • Ao final do processo de validação cruzada, a melhor configuração \((C, \gamma)\) é retornada;

  • O processo todo é altamente paralelizável.

Grid search via racing

  • Um problema de grid search é que todos os modelos precisam ser treinados com todas as tuplas de hiperparâmetros em todas as subamostras do processo de validação cruzada;

  • Seria útil se, em algum ponto do processo de otimização, uma análise intermediária fosse realizada, eliminando as tuplas que produziram resultados muito ruins;

  • Em métodos de racing, o processo de otimização avalia todos os modelos em um subconjunto inicial das subamostras (amostras burn in);

  • Com base nas métricas de performance calculadas, algumas tuplas de hiperparâmetros não são consideradas para as subamostras subsequentes;

  • Essa medida torna o processo de otimização dos hiperparâmetros mais rápido, principalmente para modelos com muitos hiperparâmetros a serem otimizados, como redes neurais e extreme gradient boosting.

Otimização de hiperparâmetros

  • As bibliotecas de aprendizagem de máquina costumam ter implementações de métodos de otimização de hiperparâmetros (grid search, grid search via racing, random search, otimização bayesiana, algoritmos evolutivos, inteligência de enxames, etc.);

  • Para garantir a reprodutibilidade do código, é importante definir uma semente para o gerador de números aleatórios (em R, utilizando a função set.seed()) em todas as etapas que envolverem amostragem.

Fim

Obrigado pela Atenção!

Profs. Ana Hermínia Andrade, Cristina Katya T. T. Mendes e Marcelo R. P. Ferreira
ana.herminia@academico.ufpb.br, cristinakatyattm@gmail.com e marcelorpf@gmail.com