Apostila ML Pt2
Apostila ML Pt2
2020/1
Contents
1 Introdução 3
1.1 Aprendizagem Supervisionada . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Algoritmos de Classicação 6
2.1 Aspectos Básicos dos Algoritmos de Classicação . . . . . . . . . . . . . . . 6
2
1 Introdução
Aprendizado de máquina ( machine learning) é um termo geral utilizado para denir uma
série de algoritmos que extraem informação a partir de um conjunto de dados, sem ser
sentadas a seguir.
com base em dados rotulados. Neste caso, o usuário alimenta ao algoritmo pares de entradas
rótulo, que pode ser um valor numérico ou uma classe. O algoritmo determina uma forma
dependendo das condições do meio. Pode-se realizar uma série de experimentos variando
e para cada caso atribuir um rótulo com combustão ou sem combustão. O algortimo
pode então ser treinado com estes dados, sendo capaz de prever se haverá ou não combustão
para uma dada condição de entrada. Este tipo de algoritmo, onde a saída pode assumir
algoritmos de classicação.
De maneira similar, o rótulo de saída pode ser um valor real, como por exemplo a temper-
atura do meio reacional. Neste caso, o algoritmo deve prever qual o valor desta temperatura
3
para uma dada condição de entrada, sendo que a saída pode assumir qualquer valor real.
para os dados de saída. Com base em um número grande de dados, o algoritmo busca
similaridade de itens novos com grupos já denidos. Estes algoritmos podem ser divididos
conjunto de dados que seja mais conveniente que a original, seja para facilitar a interpretação
entre os dados fornecidos. Diversos métodos de agrupamento podem ser aplicados, podendo
dados.
Em alguns casos, pode-se aplicar um conjunto de dados onde somente parte destes dados
é rotulada. Normalmente, somente uma pequena fração dos dados recebe um rótulo, porém
em um ambiente e recebe uma recompensa de acordo com o resultado dessa ação, sendo
o objetivo do algoritmo receber a maior recompensa possível. Estes sistemas possuem três
4
O agente é o programa que está sendo treinado. De alguma forma, este agente precisa ob-
2. O agente escolhe uma ação dentre diversas ações possíveis baseado na observação;
3. O agente entra em um estado de espera para que o ambiente envie novas observações;
4. O ambiente executa a ação recebida pelo agente e envia para o agente uma recompensa
Como a interação entre o agente e o ambiente ocorre de forma sequencial, é preciso operar
de forma transiente, fazendo que a cada passagem pelo loop o tempo seja incrementado em
um passo de tempo denido. Por denição, o agente inicia no tempo zero sem nenhuma
forma de treinamento (sem saber como atingir o objetivo). Através da resposta do ambiente
este sinal. A recompensa pode ser enviada no nal de cada passo de tempo ou somente após
5
2 Algoritmos de Classicação
é prever uma classe ou rótulo associado com uma variável de entrada contendo determinados
atributos. Inicialmente, o algoritmo é treinado com um conjunto de dados com classes
conhecidas, podendo estes dados estar divididos em somente duas (classicação binária) ou
resentado um exemplo considerando somente duas classes, pois isso permite a representação
dos dados em um plano xy . Porém, é importante lembrar que estes algoritmos são utilizados
principalmente quando se possuem múltiplas classes, sendo que neste caso a separação entre
cação, com o objetivo de denir as etapas básicas envolvidas. Nas seções subsequentes serão
resultado nal pode ou não ser adequado, dependendo das condições impostas. Uma série
de 200 ensaios foram realizados e os resultados foram rotulados como 0 para os casos não-
adequados e como 1 para os adequados. Assim, neste exemplo os dados possuem dois atrib-
ou 1 e 0). Na Figura 2.1 são apresentados os dados de acordo com sua classicação.
6
0
8
1
6
Pressão (bar∘
1
100 200 300 400 500
Temperatura ( ∘ C∘
associados com cada variável. Por exemplo, pode-se ter muitos pontos associados com uma
pequena faixa de temperatura e poucos pontos fora deste intervalo, o que pode prejudicar o
Para a variável classe, existem exatamente 100 pontos para cada valor (0 ou 1), ou seja,
50% dos dados estão rotulados com adequados e 50% como não-adequados. Para a pressão
e a temperatura, existe uma concentração maior de pontos para os valores médios, porém, a
realizar algum teste de generalização para saber se o modelo é capaz de predizer corretamente
o rótulo de novos dados. É importante que estes dados utilizados para testar o modelo não
sejam os mesmos utilizados no ajuste (treinamento) do modelo, pois neste caso o algoritmo
7
classe pressão (bar)
100
30
75
20
50
25 10
0 0
0.00 0.25 0.50 0.75 1.00 2 4 6 8
temperatura (oC)
30
20
10
0
100 200 300 400 500
1
Para analisar o desempenho do modelo, é comum dividir o conjunto em dois grupos : um
grupo de treinamento e outro grupo de teste. De modo geral, pode-se escolher aleatoriamente
em torno de 20-30% dos dados como parte do grupo de teste e o restante ser utilizado
como grupo de treinamento. Como esta divisão é feita de forma aleatória, as medidas de
desempenho do algoritmo podem variar dependendo de quais dados forem selecionados para
Neste exemplo, serão utilizados 20% dos dados para teste e os 80% restante para treina-
mento, ou seja, 40 pontos para teste e 160 para treinamento. Na Figura 2.3 é apresentado
o grupo de teste obtido de forma aleatória. É importante que os dados não estejam con-
centrados em uma região especíca do domínio, pois isso pode gerar uma falsa medida de
desempenho do modelo em outras regiões. Comparando os dados das Figuras 2.1 e 2.3, pode-
algoritmo de classicação. Neste exemplo, será o utilizado o método dos k-vizinhos mais
1 Pode-se também utilizar um terceiro grupo para validação de certos aspectos do modelo, mas inicialmente
serão considerados somente 2 grupos.
8
8
0
1
7
Pressão (bar∘ 6
1
50 100 150 200 250 300 350 400 450
Temperatura ( ∘ C∘
próximos (k-NN - K-Nearest Neighbors), sendo este um dos métodos mais utilizados para
classicação. Este método realiza a classicação com base na distância (geométrica) entre
o ponto avaliado e os k vizinhos mais próximos que fazem parte do grupo de treinamento.
O valor de k deve ser informado pelo usuário, sendo um importante parâmetro para o
desempenho do método. Por exemplo, se k=1 for utilizado, o algoritmo irá buscar, dentro
do conjuto de treinamento, o ponto mais próximo àquele que está sendo avaliado e irá
atribuir o mesmo rótulo a este ponto. Mais detalhes sobre este método serão apresentados
classe de cada ponto do grupo de treinamento, para que na etapa de predição o rótulo de um
dado ponto possa ser denido com base na sua posição e na classe dos vizinhos mais próximos.
Após esta etapa, é realizada a predição dos dados do grupo de teste, ou seja, o algoritmo
irá utilizar os valores de temperatura e pressão presentes neste grupo e tentará prever a
qual classe estes pontos pertencem. Através da comparação com a classe real destes pontos
Existem diversas métricas que podem ser utilizadas para estimar o desempenho de um al-
goritmo de classicação, sendo elas baseadas nas quantidades de predições corretas e erradas
dentro do grupo de teste. Para o exemplo deste algoritmo onde os dados são divididos em
9
Verdadeiros Positivos (TP): Valores da classe 1 preditos de forma correta;
A soma de todos estes conjuntos deve ser igual ao número total de pontos utilizados no
grupo e teste. Uma maneira muito simples de representar estes valores é através da matriz
de confusão (confusion matrix), que para este caso será denida como representado na
2
Tabela 2.1 .
Valores Previstos
Negativo Positivo
Negativo TN FP
Valores Reais
Positivo FN TP
Os valores encontrados para a matriz de confusão para este exemplo são apresentados na
Tabela 2.2. Neste caso, 17 valores da classe 0 foram previstos corretamente (verdadeiros
classe 0 foram previstos como pertencentes a classe 1 (falsos positivos) e 7 valores da classe
1 foram previstos como 0 (falsos negativos). De forma geral, quanto maiores os elementos
Valore Previstos
Negativo Positivo
Negativo 17 4
Valores Reais
Positivo 7 12
Para quanticar o desempenho do algoritmo, uma das métricas mais utilizadas é a acurá-
cia, que relaciona o total de acertos com o total de dados presentes no grupo de teste,
10
pondendo ser denida como:
TP + TN
Acurácia = (2.1)
TP + TN + FP + FN
Com base nos dados obtidos na matriz de confusão, a acurácia para este exemplo é de
(17 + 12)/40 = 0.725, ou seja, somente 72.5% dos dados foram previstos corretamente.
De maneira geral, este valor é relativamente baixo, porém isto está muito associado com a
natureza dos dados e com os parâmetros utilizados no algoritmo. Nas próximas seções serão
Por último, pode-se utilizar o algoritmo para fazer previsões de dados que não tenham sido
utilizados em nenhum dos grupos. Como neste caso é possível visualizar aproximadamente a
região de separação entre as classes, é interessante avaliar alguns valores que estejam clara-
mente em uma região com classe conhecida. Por exemplo, para 300◦ C e 2 bar, o algoritmo
prevê a classe 1, o que está de acordo com o esperado com base na Figura 2.1.
É importante destacar que o algoritmo pode fazer previsões fora da região denida pelos
dados de treinamento (neste caso, entre 20 − 500◦ C e 1 − 8 bar), porém, estes resultados
tendem a ser muito menos conáveis, então devem ser utilizados com cautela.
3
A implementação deste exemplo utilizando Python pode ser visualizada neste vídeo .
como é possível que os dados sejam divididos em mais de duas classes. As etapas envolvidas
4
dados contendo 1600 elementos apresentado por Cortez et al , onde os autores relacionam
Neste exemplo, não é possível visualizar o gráco de dispersão dos pontos, pois os dados
estão dispostos em um espaço vetorial com dimensão 11. Através da aplicação dos algoritmos
3 https://www.youtube.com/watch?v=wMFqyOn2khA
4 Cortez, et al. Modeling wine preferences by data mining from physicochemical properties, Decision Support
Systems 47 (2009) 547-533
11
de classicação, pode-se obter hiperplanos de separação entre as classes, de forma semelhante
Da mesma forma que para a classicação binária, os dados devem ser divididos em um
grupo de treinamento e outro de teste. Neste exemplo, serão utilizados 33% dos dados para
teste, pois este valor apresentou uma acurácia maior. Para ilustrar, o algoritmo KNN tam-
bém será utilizado, porém a aplicação considerando somente 3 vizinhos leva a uma acurácia
de 0.48, enquanto que com 7 vizinhos este valor aumente para 0.525. Neste caso, a acurácia
também é calculada como a razão entre o total de acertos pelo total de elementos no grupo
de teste.
Esta acurácia pode parecer muito baixa, mas é interessante avaliar a matriz de confusão
neste caso para vericar onde o classicação está errando. Como neste caso existem 6 classes,
a matriz de confusão será uma matriz 6 × 6, relacionando os dados reais com as previsões,
Valores Previstos
3 4 5 6 7 8
3 0 0 1 2 1 0
4 0 8 8 3 3 0
Valores Reais
5 0 1 165 70 7 0
6 0 1 94 106 9 0
7 0 3 22 22 9 0
8 0 0 2 3 1 0
pertencentes a uma classe com a quantidade prevista de elementos para esta classe. A
principal são previsões erradas. Por exemplo, a linha 1 coluna 3 indica que houve 1 elemento
pertencente à classe 3 que foi previsto como pertencente à classe 5. A maior parte das
previsões erradas são adjacentes à diagonal principal, ou seja, o algoritmo erra em uma
classe para mais ou para menos. Como estes valores representam uma quanticação da
qualidade do produto, este erro em uma classe pode não ser muito signicativo.
12
5
A implementação deste exemplo utilizando Python pode ser visualizada neste vídeo .
aplicação de modelos capazes de fazer predições de classes, como o apresentado nesta seção.
mente diversos conceitos que serão, na sequência, aplicados no estudo de algoritmos especí-
cos. Uma análise mais detalhada destes conceitos pode ser encontrada em Deisenroth et al.
(2020).
que os dados estejam em um formato adequado que possa ser interpretado pelo algoritmo.
estas possam ser operadas numericamente. No exemplo anterior, isto foi utilizado para
reprensetar duas classes, rotuladas inicialmente como processo adequado e processo não-
6
adequado, em um formato binário 0 ou 1 .
por isso não foi necessário manipular os dados. Porém, quando os atributos possuem ordens
de grandeza muito diferentes, uma grande melhoria no desempenho do algoritmo pode ser
conseguida normalizando os dados, ou seja, deixando todos eles na mesma escala (ou
pelo menos em uma escala próxima). Por exemplo, considere que um atributo esteja no
intervalo (0, 0.1), enquanto outro esteja no intervalo (0, 105 ). Em operações que envolvam a
manipulação destes atributos, é provável que a inuência do segundo seja superestimada por
conta da sua magnitude. Para eliminar este problema, pode-se denir os dois em uma escala
similar, por exemplo, indo de −1 (valor mínimo) até +1 (valor máximo). Isto é semelhante
5 https://www.youtube.com/watch?v=YFQQAee-FI0
6 De forma equivalente, poderiam ser atribuídos outros valores, como -1 e +1, por exemplo.
13
Em muitos casos, também pode ser necessário extrair os atributos a partir de um conjunto
de dados, por exemplo, em sistemas onde os dados são informados como imagens. De alguma
Neste material, será considerado que os atributos são apresentado na forma de um vetor
x7 , enquanto que a classe associada a este vetor será identicada como y. Para algoritmos
conjunto da forma:
Observe que enquanto a classe é um escalar (cada elemento pode pertencer a somente
uma classe), os atributos são vetores com dimensão nita, por exemplo, considerando que
prever a qual classe irá pertencer um novo elemento x0 , sendo neste caso o modelo é chamado
de preditor. Esta mesma lógica pode ser aplicada para algoritmos de regressão, com a única
diferença que neste caso a saída não será uma classe e sim um valor real qualquer.
utilizado. O primeiro caso é a obtenção de uma função preditora, que é uma função f que
recebe como argumento de entrada um vetor com dimensão n e gera como saída um escalar
f : Rn → R (2.3)
f (x) = θ T x + θ0 (2.4)
sendo que os coecientes angular θ e linear θ0 devem ser ajustados. Exemplos de algoritmos
14
Figure 2.4: Comparação entre uma função preditiva (linha preta) e um modelo probabilístico
A segunda possibilidade é que os modelos preditivos sejam obtidos como modelos proba-
bilísticos, ou sejam, expressam a probabilidade de um dado elemento pertencer a uma certa
classe ou estar associado com um certo valor. Estes modelos são especialmente úteis quando
os dados de entrada possuem muito ruído, pois permitem ponderar o efeito destes pontos.
a uma função que associa cada ponto do domínio x com uma única imagem y. No caso do
modelo probabilístico (linha amarela), obtém-se uma função densidade de probabilidade que
relaciona a probabilidade de a saída y assumir um certo valor para uma entrada x = 60.
Para obter os parâmetros destes modelos, deve-se resolver um problema de otimização
onde o erro associado aos dados deve ser de alguma forma estimado e minimizado. A seguir
15
2.2.3 Minimização do Risco Empírico
O princípio de minimização do risco empírico é utilizado para a obtenção dos parâmetros
apresentado na Eq. ??, contendo m elementos, onde cada elemento é composto por um par
vetor de dimensão n (x) e classe (y ). O objetivo é encontrar uma função preditora que, com
f (xi , θ) ≈ yi i = 1, 2, 3, . . . m (2.5)
Considere que o valor previsto por esta função seja representado como ŷi , ou seja, ŷi =
f (xi , θ). Para avaliar a diferença entre estes valores previstos ŷi e os valores reais yi , utiliza-
se uma função para mensurar o erro associado com cada predição. Esta função é chamada de
função de perda, sendo representada como `(ŷi , yi ). Como saída desta função, obtém-se um
escalar positivo, chamado de perda, que representa uma estimativa do erro8 . Os parâmetros
θ utilizados na função preditora devem ser valores que minimizem esta função de perda para
o conjunto de valores.
conjunto de dados são independentes entre si, o que implica que a média amostral (também
conhecida como média empírica é uma boa estimativa da média real da população. Para um
n
1X
x̄ = xi (2.6)
n i=1
Considerando a mesma hipótese para a função de perda, pode-se assumir que a média
empírica das perdas é uma boa aproximação da perda associada com todo o conjunto de
dados:
m
1 X
`¯ = `(ŷi , yi ) (2.7)
m i=1
Como a função `(ŷi , yi ) depende tanto da função preditora f quanto dos dados utilizados,
a média `ˆ, esta relação pode ser expressa em termos de uma função de risco empírico Remp ,
8 Veja que está função tem relação com a denição de acurácia discutida anteriormente.
16
da seguinte forma:
m
1 X
Remp (f, X, y) = `(ŷi , yi ) (2.8)
m i=1
onde X representa uma matriz com dimensão n×m contendo todos os vetores x da forma
minimizem Remp (f, X, y) é que esta função considera somente dados já rotulados, não traz
nenhuma informação sobre como o algoritmo irá desempenhar para classicar novos dados.
novos, que não tenham sido usados no treinamento. Neste caso, diz-se que o classicador tem
boa capacidade de generalização. Por isso, deve-se buscar alguma forma de estimar um
erro que leve em conta somente a função preditora f e não o conjunto de dados utilizados.
Uma maneira de avaliar o erro real esperado seria supor que temos acesso a um número
innito de amostras rotuladas. Com isso, seria possível eliminar a inuência das amostras
individuais e ter um valor real para a média. De forma semelhante ao erro empírico, pode-se
k
!
1X
Rexp (f ) = lim `(yi , f (xi )) (2.9)
k→∞ k i=1
onde yi representa a classe real das amostras e f (xi ) o valor previsto. Veja que neste caso
algoritmo já foi realizado. Claramente esta denição não possui aplicação prática, visto que
e um conjunto de teste. Neste caso, os dados (X, y) são divididos em (Xtreino , ytreino ) e
(Xteste , yteste ).
O treinamento do algoritmo é feito de modo a encontrar os parâmetros θ ∈ Rn que
minimizem o risco empírico associado com o conjunto de treinamento, o que pode ser expresso
17
como:
Mesmo que este valor seja minimizado, isto não garante que o algoritmo será capaz de
classicar bem novos dados, ou seja, tem capacidade de generalização. Para avaliar isto,
pode-se estimar o erro esperado utilizando o erro empírico associado ao conjunto de teste:
A princípio, se o erro empírico associado aos dois conjuntos for baixo, isto indica que o
algoritmo foi bem ajustado e possui boa capacidade de generalização. Porém, neste ponto é
1. Como proceder caso o risco empírico associado ao conjunto de treinamento for baixo
(ou seja, o algoritmo está bem ajustado), porém, o risco associado ao conjunto de teste
for alto?
2. Como garantir que o conjunto de teste escolhido gera uma boa representação do erro
esperado?
A primeira pergunta está associada com um conceito muito importante na área de apren-
dizagem que é a noção de sobreajuste ( overtting), que pode ser contornada com uma es-
tratégia de regularização. A segunda pergunta pode ser respondida utilizado uma estratégia
Sobreajuste e Regularização
dados. Porém, se estas variações forem causadas por ruídos, o modelo acaba se ajustando a
um padrão denido pelos ruídos e perde a capacidade de generalização. Este problema ocorre
os dados perfeitamente nas duas classes, porém é muito provável que em um processo físico
real esta fronteira irregular seja causada por ruídos na obtenção dos dados. De forma semel-
hante, para o exemplo da regressão, a curva consegue cruzar todos os pontos do conjunto de
18
treinamento, porém, em alguns intervalos entre os pontos, assume valores muito distantes
O fenômeno de sobreajuste leva a uma baixa capacidade de generalização, já que existe uma
grande chance de que dados não utilizados no treinamento não sejam avaliados corretamente.
Por isso, o erro empírico relacionado com o conjunto de teste tende a ser alto.
19
expresso como:
que neste caso o algoritmo é penalizado caso os valores do vetor bmθ sejam, em magnitude,
muito grandes. Esta estratégia costuma funcionar pois, de modo geral, estes valores tendem
corretamente, obtém-se uma resposta menos sensível a ruídos, como ilustrado na Figura ??
para um exemplo de classicação na na Figura ?? para regressão.
Em alguns casos, também pode ocorrer o problema oposto, ou seja, o modelo pode ser
simplicado demais, ao ponto de não conseguir capturar o real comportamento dos sistema.
Por exemplo, considere um caso onde o conjunto de dados foi gerado por um problema
periódico, descrito aproximadamente por uma função seno. Se o modelo tentar ajustar
estes pontos a uma reta, a informação referente à oscilação será perdida, o que costuma ser
Validação Cruzada
pode-se partir agora para o segundo problema: como escolher um conjunto de teste signica-
tivo? A abordagem de utilizar parte dos dados para vericar a capacidade de generalização
se existe sobreajuste ou não. Ao invés disso, o que pode ser utilizado é uma abordagem
onde os dados são separados de uma forma um pouco diferente, em dados para treinamento
mento utilizado para avaliar o desempenho do algoritmo durante a etapa de obtenção dos
denidos.
9O método onde os dados são simplesmente divididos em conjunto de treinamento e de teste costuma ser
chamado de Método Holdout.
20
A forma mais utilizada de validação cruzada utilizado conjuntos de validação é o método
K-fold, onde o conjunto de dados de treinamento é dividido em K subconjuntos, onde K −1
subconjuntos irão formar o conjunto de treinamento e o subconjunto restante irá formar
o conjunto de validação. A ideia geral, neste caso, é repetir o processo de obtenção dos
parâmetros estimativa do erro K vezes, sempre mudando qual subconjunto será utilizado
(método 5-fold).
Figure 2.7: Divisão dos dados em conjuntos de treinamento (branco) e de validação (cinza)
Neste exemplo, utilizado um método 5-fold, para cada uma das 5 separações, o conjunto
de treinamento é utilizado para obter a função preditora f, que por sua vez é aplicada
no conjunto de validação para computar o risco empírico. Após fazer este procedimento
em todas as 5 combinações, o erro estimado do predito é avaliado como a média dos erros
muito aplicada para a obtenção de funções preditoras. Outra abordagem que pode ser
função dos parâmetros que permita estimar quão bem os dados estão ajustados. Por exemplo,
considere que o modelo possua um conjunto de parâmetros denidos pelo vetor θ. O objetivo
21
A probabilidade de que o modelo preveja uma classe yi , para um dado vetor xi e um
conjunto de parâmetros θ é representada como p(yi |xi , θ). Esta função (também chamada
obter os parâmetros θ que maximizem a chance de acerto para todo o conjunto de dados
Esta abordagem é muito semelhante ao uso de uma função de perda, como visto anterior-
expressão ?? implica em minimizar o termo (yi − f (xi , θ))2 (lembrando do sinal negativo na
exponencial). Isto é equivalente a utilizar uma função de perda do tipo mínimos quadrados,
`(ŷi , yi ) = (yi − ŷi )2 . Por isso, assim como no caso da minimização do risco empírico, esta
Este problema pode ser reduzido adicionando um termo na função objetivo, multiplicando
parâmetros θ (informação a priori). Este termo irá ter um papel semelhante à regularização
aplicada para minimização do risco empírico. Utilizando este termo com conjunto com o
Neste material não serão apresentados detalhes sobre a aplicação deste procedimento para
avaliada para a construção de algoritmos baseados na abordagem Naive Bayes. Por enquanto,
é importante saber que a obtenção dos parâmetros de um modelo pode ser feita através da
22
Nas próximas seções serão apresentados detalhes sobre a elaboração e aplicação de difer-
entes algoritmos de classicação. Estes algoritmos também podem ser aplicados para prob-
tipos de algoritmos (k-NN, máquinas de vetores de suporte e Naive Bayes), sendo estes escol-
hidos pois cada um possui uma abordagem distinta. Diversos outros algoritmos podem ser
aplicados para este m (por exemplo, árvores de decisão, regressão logística, random forest,
classicadores baseados em redes neurais, etc.), porém, tendo um entendimento destas três
categorias básicas é possível resolver grande parte dos problemas práticos de classicação.
base na classe dos vizinhos mais próximos deste ponto, assumindo que pontos próximos tem
uma maior chance de pertencer à mesma categoria. Com isso, durante o treinamento não é
euclidiana entre os elementos. Por exemplo, considere que seja utilizada uma função f (x, x0 )
para determinar a distância entre dois elementos x e x0 , de modo que:
dada por:
v
u n
0
uX
||x − x|| = t (xi − x0 ) i (2.16)
i=1
Como o objetivo é fazer a classicação com base na classe dos vizinhos mais próximos, esta
distância pode ser interpretada como uma função de perda que deve ser minimizada.
23
Para determinar a classe de um novo elemento x0 , a primeira etapa é determinar a sua
distância com relação aos elementos do grupo de treinamento. Após, os elementos devem
ou seja, o elemento wi está mais próximo de x0 do que o elemento wi+1 . Com isso, pode-se
crescente de acordo com o valor da função de perda associada com cada elemento.
(k = 1). Neste caso, a classe prevista para o elemento x0 , representada por y x0 , será a classe
algoritmo 1-NN.
ruído nos dados de treinamento, ou seja, pontos que apresentam um desvio signicativo. Por
exemplo, considere que se busque determinar a classe associada ao ponto verde na Figura
?? (indicado com um seta para facilitar sua localização). Caso seja utilizado somente um
24
vizinho, este será rotulado com a classe azul. Porém, este ponto azul parece corresponder a
algum erro de medição, já que está cercado por pontos vermelhos. Uma maneira de resolver
este problema é utilizar mais vizinhos, por exemplo, se k=3 a maioria dos pontos vizinhos
O peso dado para cada vizinho pode ser o mesmo ou uma função especíca pode ser uti-
lizada para, por exemplo, diminuir a inuência de um ponto quanto mais distante estiver
do ponto avaliado. O problema em utilizado muitos pontos ocorre quando existe uma classe
dominante no grupo de treinamento. Por exemplo, considere que 90% dos dados correspon-
dam a uma classe 1 e 10% a outra classe 2. Se um valor de k alto for utilizado, existe uma
grande chance de qualquer ponto ser classicado com pertencente à classe 1, já que ela é
para o k-NN é que neste caso, ao invés de xar um número k de vizinhos, é xado um raio em
torno do ponto e são analisados todos os vizinhos dentro deste raio. Este tipo de algoritmo
costuma ser mais adequado quando os espaçamento entre os dados é muito não-uniforme.
25
Bibliography
Deisenroth, M. P., Faisal, A. A., and Ong, C. S. (2020). Mathematics for Machine Learning.
Cambridge University Press.
Hulsen, T., Jamuar, S. S., Moody, A. R., Karnes, J. H., Varga, O., Hedensted, S., Spreaco,
R., Haer, D. A., and McKinney, E. F. (2019). From big data to precision medicine.
Muller, A. and Guido, S. (2017). Introduction to Machine Learning with Python. O'Reilly
Media, Incorporated.
26