Este algoritmo de aprendizagem por máquina é fácil e simples de compreender. É possível resolver problemas de regressão e classificação com métodos de aprendizagem por máquina. Para compreender o conceito de “K-nearest neighbour”, é necessário saber primeiro como funciona uma técnica de aprendizagem supervisionada por máquina. Na aprendizagem supervisionada, fornece-se o modelo com dados etiquetados. A máquina analisa então os dados etiquetados e conduz uma saída adequada.
Por exemplo, quando as crianças são jovens, precisam de supervisão para compreender a diferença entre diferentes cores, animais, alfabetos, etc. Rotula-se todos os itens para que possam identificá-los rapidamente. É assim que funciona a aprendizagem supervisionada da máquina. Esta aprendizagem ajuda a resolver problemas de classificação. Neste tipo de problemas, prevê-se o valor dos dados de entrada, e depois o algoritmo organiza os valores em diferentes classes com base no peso das funções e das suas características de entrada.


Vizinhos do K-Nearest


Para resolver a regressão e classificação, pode utilizar este algoritmo para o método de aprendizagem supervisionada da máquina. O KNN não inclui nenhuma fase de aprendizagem. Não calculam o método preditivo como a regressão linear ou logística. Este algoritmo encontra as semelhanças entre as variáveis. Eles medem a proximidade ou distância das variáveis com base nos dados fornecidos. Em palavras simples, este algoritmo pensa que quanto mais próximas as coisas estão umas das outras, mais semelhantes elas são.


Como funciona o Algoritmo KNN


É necessário seguir o seguinte método para implementar correctamente o Algoritmo K-Nearest Neighbor Algorithm (para Python):

Carregar a entrada ou os dados na máquina a partir do conjunto de dados

Modificar o valor de K a partir das variáveis

Calcular a distância das variáveis em relação a cada exemplo dos dados.

Agora adicionar a distância de uma forma ordenada

Agora, ordenar a colecção ordenada por ordem ascendente com base na sua distância.

Escolher o K da colecção

Encontre agora os rótulos desse valor K

Se for regressão, é necessário devolver a média do rótulo “K.”.

Se for a classificação, então é necessário devolver o modo da etiqueta “K”.


Implementação da Codificação em


de colecções importCounter
matemática de importação defknn(data, query, k, distance_fn, choice_fn):
neighbor_distances_and_indices = []
3. Para cada exemplo nos dados para índice, por exemplo inenumerar(dados):
3.1 Calcular a distância entre o exemplo de consulta e a corrente exemplo a partir dos dados. distância =distance_fn(exemplo[:-1], consulta)
3.2 Acrescentar a distância e o índice do exemplo a uma colecção encomendada neighbor_distances_and_indices.append((distância, índice))
4. Ordenar a recolha ordenada de distâncias e índices de menor para maior (em ordem ascendente) pelas distâncias sorted_neighbor_distances_and_indices =sorted(neighbor_distances_and_indices)
5. Escolher as primeiras entradas K da colecção ordenada k_nearest_distances_and_indices = sort_neighbor_distances_and_indices[:k]
6. Obter as etiquetas das entradas K seleccionadas k_nearest_labels = [data[i][1] para distância, i em k_nearest_distances_and_indices]
7. Se regressão (escolha_fn = média), devolver a média das etiquetas K
8. Se classificação (choice_fn = modo), devolver o modo das etiquetas K retornar k_nearest_distances_and_indices , choose_fn(k_nearest_labels) defmean(etiquetas):
returnum(etiquetas) /len(etiquetas) defmode(etiquetas):
returnCounter(labels).most_common(1)[0][0] defeuclidean_distance(point1, point2):
sum_squared_distance =0
para i inrange(len(ponto1)):
sum_squared_distance += math.pow(ponto1[i] – ponto2[i], 2)
return math.sqrt(sum_squared_distance) defmain():
”’
# Dados de Regressão
#
# Coluna 0: altura (polegadas)
# Coluna 1: peso (libras)
”’
reg_data = [
[65.75, 112.99],
[71.52, 136.49],
[69.40, 153.03],
[68.22, 142.34],
[67.79, 144.30],
[68.70, 123.30],
[69.80, 141.49],
[70.01, 136.46],
[67.90, 112.37],
[66.49, 127.45],
] Pergunta: Dados os dados que temos, qual é o melhor palpite para o peso de alguém se ele tem 60 polegadas de altura? reg_query = [60] reg_k_nearest_nearest_neighbors, reg_prediction =knn( reg_data, reg_query, k=3, distance_fn=euclidean_distance, choice_fn=mean ) ”’
# Dados de classificação
#
# Coluna 0: idade
# Coluna 1: gosta de ananás
”’
clf_data = [
[22, 1],
[23, 1],
[21, 1],
[18, 1],
[19, 1],
[25, 0],
[27, 0],
[29, 0],
[31, 0],
[45, 0],
] Pergunta: Dados os dados que temos, a M&M não especificada cabe no conjunto de M&M’s Vermelho ou Verde? clf_query = [33] clf_k_nearest_nearest_neighbors, clf_prediction =knn( clf_data, clf_query, k=3, distance_fn=euclidean_distance, choice_fn=mode ) se nome ==’main‘:
principal()

Compreensão com o exemplo


Agora vamos compreender os passos acima em palavras fáceis. Imagine que há M&Ms verdes e vermelhos num prato. Aqui, encontrará outro M&M que não conhece a classe de. Para encontrar a classe, é preciso definir um valor de K. Digamos que nesta condição K = 4. Agora irá desenhar um círculo à volta do M&M não identificado de uma forma que o centro do círculo seja esse mesmo M&M, e apenas os outros quatro M&Ms se encontram no círculo. Agora vamos verificar de que classe de M&Ms é que o círculo tem mais. Digamos que se houvesse quatro M&Ms vermelhos, então consideraremos a M&M não identificada como uma classe vermelha.


Quando se pode utilizar o Algoritmo KNN?


Pode usar o Algoritmo K-Nearest Neighbor Algorithm para resolver o problema da regressão ou classificação. Muitas indústrias utilizam este sistema supervisionado de aprendizagem de máquinas para problemas de classificação. Aqui estão três factores importantes na avaliação de qualquer técnica:

Quão fácil se pode interpretar o resultado?

Como se pode calcular o resultado?

Qual é o poder preditivo?
O KNN é perfeito para todos os parâmetros acima referidos para medir uma técnica. No entanto, a técnica KNN tem aplicações frequentes porque é fácil de interpretar e calcular o tempo de saída.


Como se pode escolher o valor K?


Para encontrar o melhor valor K, precisamos de executar o algoritmo muitas vezes e verificar qual o número que reduz os erros e ainda manter a capacidade do algoritmo e fazer previsões. Aqui estão algumas das coisas que precisa de ter em mente:

A primeira coisa que não deve fazer é seleccionar um como um valor K. Quando se selecciona um como valor K, obtemos previsões instáveis. Por exemplo, se precisarmos de encontrar a classe de um M&M que está completamente rodeado de M&Ms vermelhos, mas apenas um M&M verde está perto do M&M não identificado. Nesta condição, vamos pensar que o ponto de interrogação é verde, pelo que a nossa previsão estará errada.

Quando aumentarmos o valor K, veremos que a previsão se tornará estável devido à maioria dos eleitores. Contudo, quando encontramos mais erros, estamos a ir demasiado longe do valor K.

Quando há um empate entre as previsões, precisamos de escolher o número ímpar.
A escolha do valor K depende do conjunto de dados que se está a tentar utilizar. No entanto, deve saber que quanto mais vizinhos adicionarmos, mais precisos serão os resultados que obteremos.


Conclusão


Neste artigo, tentámos fornecer um conceito básico e de fácil compreensão do Algoritmo K-Nearest Neighbor Algorithm. Aprendemos que o KNN ajuda a prever a classificação com o conjunto de dados dado. Este é um método de cálculo fácil e rápido.