Introdução ao algoritmo KNN

K O algoritmo do vizinho mais próximo, conhecido como KNN, é o algoritmo básico de aprendizado de máquina. Entender esse algoritmo é um ótimo lugar para começar a aprender o aprendizado de máquina, pois a lógica por trás desse algoritmo é incorporada em muitos outros modelos de aprendizado de máquina. O algoritmo do vizinho mais próximo está na parte de classificação no aprendizado supervisionado.

O que é aprendizado supervisionado?

O algoritmo de aprendizado supervisionado é um tipo de algoritmo em que se baseia na entrada rotulada para aprender e prevê com base na função quando dados não rotulados são fornecidos. Como entendemos o que é aprendizado supervisionado, vejamos o que é classificação, o algoritmo de classificação fornece um valor discreto como saída, e não valores contínuos.

Como o algoritmo KNN funciona?

K Vizinhos mais próximos é um algoritmo básico que armazena todo o disponível e prevê a classificação de dados não rotulados com base em uma medida de similaridade. Na geometria linear, quando dois parâmetros são plotados no sistema cartesiano 2D, identificamos a medida de similaridade calculando a distância entre os pontos. O mesmo se aplica aqui, o algoritmo KNN trabalha no pressuposto de que coisas semelhantes existem próximas, simplesmente podemos colocar as mesmas coisas próximas umas das outras.

Exemplo: se tivermos um conjunto de dados quando plotados dessa forma, para classificar esses pontos de dados, o algoritmo K vizinhos mais próximos primeiro identificará a distância entre os pontos e verificará se são semelhantes ou não.

Em Geometria, de acordo com Euclidiano, a função de distância pode ser calculada pela seguinte equação,

Se K = 1, o caso é simplesmente atribuído a uma classe de seu vizinho mais próximo (usamos "1" em quase todas as situações em matemática, podemos alterar o valor de K enquanto treinamos os modelos em aprendizado de máquina e iremos discuta isso mais adiante no artigo) X e Y são os valores nos eixos coordenados.

Se notarmos aqui, todas as medidas de distância que estamos obtendo serão variáveis ​​contínuas, mas precisamos de valores discretos ao fazer a classificação. Temos que usar a distância de hamming para conseguir isso.

Essa equação também nos traz a padronização de valores numéricos entre 0 e 1 quando há uma mistura de valores numéricos e categóricos no conjunto de dados.

X Y Distância
Com câncer Com câncer X = Y → D = 0
Sem câncer Sem câncer X! = Y → D = 1

Dessa maneira, o algoritmo funciona e agora vamos mergulhar em como escolhemos o valor de K no KNN.

Escolhendo o valor K no algoritmo KNN

Antes de ver quais são os fatores a serem considerados ao escolher o valor de K, precisamos entender como o valor de K influencia o algoritmo.

Estes são os gráficos do mesmo conjunto de dados com valores K variáveis, o valor K é 1 para o gráfico no canto superior esquerdo e mais alto para o gráfico no canto inferior direito. Se examinarmos com cuidado, podemos entender que o limite do algoritmo de classificação se torna suave à medida que o valor de K aumenta. Esse é o valor de K é diretamente proporcional à suavidade do limite. Portanto, podemos entender que, se o valor de K estiver definido como 1, o modelo de treinamento superestimará os dados e, se o valor de K estiver definido como um número grande, os dados serão subestimados. Para escolher um valor ótimo de K, precisamos verificar o erro de validação com vários valores K e escolher um com o erro mínimo.

Etapas para implementar o algoritmo KNN em Python

Até aqui, aprendemos a parte teórica do algoritmo do K Nearest Neighbour, agora vamos ver praticamente aprendendo a implementar em python.

Etapa 1: Importando Bibliotecas

A seguir, veremos Importando as bibliotecas necessárias para executar o KNN.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Etapa 2: Importando conjunto de dados

Aqui, veremos o conjunto de dados sendo importado.

file = "/path/to/the/dataset"
#Push dataset into Pandas dataframe
dataset = pd.read_csv(file)

Etapa 3: Dividir conjunto de dados

O próximo passo é dividir nosso conjunto de dados em teste e treinar a divisão.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)

Nota: O conjunto de dados que estou usando para demonstrar foi pré-processado com a definição dos valores X e Y. Se isso não for feito primeiro, será necessário fazê-lo, porque enquanto o modelo de classificação está sendo treinado, temos que passar dados rotulados para calcular as distâncias.

Etapa 4: Modelo de Treinamento

Agora, nesta etapa, veremos um treinamento de modelo.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=3)
classifier.fit(X_train, y_train)

Nota: Aqui estamos usando o classificador K vizinhos importado da biblioteca do módulo sklearn.neighbours.

Etapa 5: executando previsões

Executando previsões nos dados da divisão de teste.

y_pred = classifier.predict(X_test)

Etapa 6: verificar a validação

O próximo passo é avaliar o algoritmo e verificar o erro de validação, executar novamente com um valor K diferente e considerar o valor k onde obtemos o erro mínimo de validação. É assim que podemos praticamente implementar o classificador K Nearest Neighbours, existem várias maneiras de implementar esse algoritmo, este é apenas um deles e, neste artigo, descrevi muito brevemente as etapas, pois nossa agenda principal é entender como o algoritmo funciona.

Conclusão

Como dito anteriormente, o algoritmo K Nearest Neighbours é um dos algoritmos mais simples e fáceis de usar para classificação. Com base em como ele funciona, ele também se enquadra no "Algoritmo de Aprendizagem Preguiçosa". Geralmente, o valor K que todos passam durante o treinamento do modelo é um número ímpar, mas isso não é uma compulsão. No entanto, há poucos contras também, enquanto o KNN é usado.

  • Não combina bem com os dados categóricos, porque não conseguimos encontrar a distância entre dois recursos categóricos.
  • Também não funciona bem com dados de alta dimensão, pois será difícil para o algoritmo calcular a distância em cada dimensão.

Se atualmente vemos que a maioria dos casos de uso no Machine Learning é cercada pelo algoritmo de classificação no nível básico, é assim que o KNN está desempenhando um papel importante no mundo do aprendizado de máquina.

Artigos recomendados

Este é um guia para o algoritmo KNN. Aqui discutimos a introdução e o funcionamento do algoritmo K Nearest Neighbors com as etapas para implementar o algoritmo kNN em python. Você também pode consultar os seguintes artigos para saber mais:

  1. Como funciona o algoritmo SVM?
  2. Algoritmo MD5 (vantagens e desvantagens)
  3. K- significa algoritmo de agrupamento
  4. Tipos de aprendizado por reforço
  5. Guia Completo para Algoritmo C ++

Categoria: