Conceitos Básicos de Machine Learning

  • Conjuntos de treino, teste e validação
  • Overfitting e Underfitting
  • Validação Cuzada
  • KNN

Conceitos Básicos

Exercício 1

Suponha que esteja utilizando a Regressão Polinomial. Você plota as curvas de aprendizado e percebe que existe um grande hiato entre o erro de treinamento e o de validação.

a. O que está acontecendo?

b. Quais são três maneiras de resolver isso?

Respostas

a. Quando vemos uma grande discrpância entre erros de treino e validação, nosso modelo provevelmente está overfitando aos dados de treino.

b. Para solucionar esse problema, podemos tentar tomar diversas medidas:

  1. Diminuir a capacidade de nosso modelo: Modelos menores capturam os dados com menos granularidade, ou seja, são forçadso a aprender uma representação menos geral que pode se adaptar melhor a novos dados.
  2. Early Stopping: Podemos interromper o treinamento de nosso modelo de maneira precoce caso o erro de validação fique estagnado, impedindo assim que nosso modelo continue treinando e overfitando ao treino.
  3. Regularizar o Modelo: Técnicas de regularização que penalizam pesos muito grandes em nosso modelo o impede de fazer ajustes excessivos ao nosso dados de treino, evitando o overfitting.
  4. Aumentar os dados: Outra solução possível é simplesmente fornecer ao nosso modelo mais dados de treino, de forma que os novos dados o ajudem a generalizar para conjuntos de teste.

Exercício 2

Imagine que você está treinando um modelo e, ao plotar a curva de erro ao longo das iterações com os dados de treino, você obtém o seguinte gráfico:

image.png

a. Estime o número da iteração onde o modelo obteve o melhor resultado, ou seja, sua predição foi melhor.


Considere agora que, além de plotar a curva de erro ao longo das iterações com os dados de treino, a curva de erro para o conjunto de dados de validação ao longo das mesmas iterações também é considerada, conforme mostrado no gráfico abaixo:

image.png

b. Estime o número da iteração onde o modelo obteve o melhor resultado, ou seja, onde, de forma geral, sua predição foi melhor.

c. Explique a importância do conjunto de validação nesse caso e indique uma estratégia para obter o erro mínimo nesse conjunto.

Resposta

a. Olhando apenas para o erro no treino, podemos concluir que o modelo apresentou os melhores resultados na época 100, que teve o menor erro.


b. Nesse gráfico, vemos uma clara divergência entre o erro de treino e validação, que começa a ocorrer por volta da época 20. Isso indica que o modelo entrou em overfitting, e, por mais que o erro no treino continue caindo até a última época, é melhor interromper o treino, e pegar o modelo apenas até a época 20.


c.

O Conjunto de validação foi essencial para identificar o overfitting de nosso modelo. Para garantir os melhores resultados na validação, podemos interromper o treino quando o erro de validação para de diminuir, uma técnica chamada de early stopping.

Exercício 3

a) Explique como é feita a implementação da validação cruzada k-fold.

b) Quais são as vantagens e desvantagens de se utilizar o k-fold invés de apenas um conjunto de validação?

Resposta

a.

Primeiro, nós dividimos nossos dados em k grupos. Em seguida, escolhemos um desses grupos como nossa validação, e fazemos o treino nos outros k-1. Repetimos esse processo k vezes, até que todos os grupos tenham sido usados como validação.


b.

Ao utilizar o k-fold, nós testamos nosso modelo em todo o nosso conjunto de dados, e forma que vamos obter métrica mais representativas e abrangentes. O custo computacional disso, no entanto, é mais elevado, o que pode ser um impeditivo ao uso do método.

KNN

Exercício 4

A tabela a seguir mostra dados de treinamento contendo 6 observações, 3 variáveis e uma variável resposta categórica.

Obs.X1X2X3Y
1030Vermelho
2200Vermelho
3013Vermelho
4012Verde
5-101Verde
6111Vermelho

Suponha que vamos utilizar esse dataset para fazer uma predição de $ Y $ quando $ X_1 = X_2 = X_3 = 0 $ utilizando o K-nearest neighbors.

a. Calcule a distância euclidiana entre cada observação e o ponto $ X_1 = X_2 = X_3 = 0 $.

b. Qual é a predição para $ K = 1 $?

c. Qual é a predição para $ K = 3 $?

Resposta:

a.

  1. 3
  2. 2
  3. $\sqrt{10}$
  4. $\sqrt{5}$
  5. $\sqrt{2}$
  6. $\sqrt{3}$

b.

Para K igual a 1, simplemente escolhemos o ponto mais próximo de (0,0,0) e prevemos sua classe. Nesse caso, o ponto mais próximo é o 5, e a calsse predita a verde.


c.

Agora vamos considerar as 3 observações mais próximas:

  1. 5 (verde)
  2. 6 (vermelho)
  3. 4 (verde)

A previsão será verde.

Exercício 4

Quando o número de características $ p $ é grande, tende a haver uma deterioração no desempenho do KNN e de outras abordagens locais que fazem previsões usando apenas observações próximas à observação de teste para a qual uma previsão deve ser feita. Esse fenômeno é conhecido como a maldição da dimensionalidade e está relacionado ao fato de que abordagens não paramétricas geralmente têm um desempenho ruim quando $ p $ é grande. Agora investigaremos essa maldição.

a. Suponha que temos um conjunto de observações, cada uma com medições em uma característica $ p = 1, X $. Assumimos que $ X $ é distribuído uniformemente (igualmente) em $[0, 1]$. Associado a cada observação está um valor de resposta. Suponha que desejamos prever a resposta de uma observação de teste usando apenas observações que estão dentro de 10% da faixa de $ X $ mais próxima daquela observação de teste. Por exemplo, para prever a resposta para uma observação de teste com $ X = 0,6 $, usaremos observações na faixa $[0,55, 0,65]$. Em média, qual fração das observações disponíveis usaremos para fazer a previsão?

b. Agora suponha que temos um conjunto de observações, cada uma com medições em duas características $p = 2, X_1 $ e $ X_2 $. Assumimos que $ (X_1, X_2) $ são distribuídos uniformemente em $[0, 1] \times [0, 1]$. Desejamos prever a resposta de uma observação de teste usando apenas observações que estejam dentro de 10% da faixa de $ X_1 $ e dentro de 10% da faixa de $ X_2 $ mais próximas daquela observação de teste. Por exemplo, para prever a resposta para uma observação de teste com $ X_1 = 0,6 $ e $ X_2 = 0,35 $, usaremos observações na faixa $[0,55, 0,65]$ para $ X_1 $ e na faixa $[0,3, 0,4]$ para $ X_2 $. Em média, qual fração das observações disponíveis usaremos para fazer a previsão?

c. Agora suponha que temos um conjunto de observações em $ p = 100 $ características. Novamente, as observações são distribuídas uniformemente em cada característica, e novamente cada característica varia de valor de 0 a 1. Desejamos prever a resposta de uma observação de teste usando observações dentro de 10% da faixa de cada característica que esteja mais próxima daquela observação de teste. Qual fração das observações disponíveis usaremos para fazer a previsão?

d. Usando suas respostas para as partes (a) - (c), argumente que uma desvantagem do KNN quando $ p $ é grande é que há muito poucas observações de treinamento “próximas” de qualquer observação de teste dada.

e. Agora, suponha que desejamos fazer uma previsão para uma observação de teste criando um hipercubo $ p $-dimensional centrado na observação de teste que contenha, em média, 10% das observações de treinamento. Para $ p = 1, 2 $ e $ 100 $, qual é o comprimento de cada lado do hipercubo? Comente sobre sua resposta.

Um hipercubo é uma generalização de um cubo para um número arbitrário de dimensões. Quando $ p = 1 $, um hipercubo é simplesmente um segmento de linha, quando $ p = 2 $ é um quadrado, e quando $ p = 100 $ é um cubo de 100 dimensões.

Respostas

a.

Usaremos um intervalo de 0.1 dentro de um universo de 1. Ou seja, 10% de uso.


b.

Usaremos dois intervalos independentes de 0.1, dentro de dois universos de tamanho 1. $10\% \cdot 10\% = 1\%$


c.

Usando um raciocínio similar ao exercício anterior, temos: $(10\%)^100$, uma fração muito próxima de 0.


d.

Ao aumentar a dimensionalidade de nossos dados, o volume do hipercubo aonde nossos dados estão distribuídos aumenta exponencialmente. Com isso, nosso pontos podemo estar espalhados em um espaço maior, de forma que eles ficarão, portanto, muito espaçados entre si. Sem pontos próximos um dos outros, é difícil que nosso modelo de knn faça quaisquer predições razoáveis.


e.

Queremos englobar um volume correspondente a 10% de nosso hipercuco 100-dimensional. O volume do hipercubo é dado pela seguinte fórmula \(V = (a)^{1/p}\)

$a$ é o volume abrangido, nesse caso, 10%

Colocando os valores na fórmula, chegamos em

\[V = 0.1^{1/100} ≈ 0.977\]

Repare como esse número é bem próximo de 1. Isso indica que, para pegar apenas 10% dos dados em um sistema 100-dimensional, precisamos usar quase todo o espaço de cada dimensão.

#In: