Essa é uma revisão anterior do documento!
Tabela de conteúdos
K-Nearest Neighbour
kNN é um dos algoritmos de classificação mais simples disponíveis para aprendizado supervisionado. A ideia é procurar as correspondências mais próximas dos dados de teste no espaço de recursos.
O KNN tenta classificar cada amostra de um conjunto de dados avaliando sua distância em relação aos vizinhos mais próximos. Se os vizinhos mais próximos forem majoritariamente de uma classe, a amostra em questão será classificada nesta categoria.
Como o próprio nome já diz, “k-vizinhos mais próximos”, podemos determinar o número k
. Quando o k
é pequeno a classificação fica mais sensível a regiões bem próximas podendo ocorrer o overfitting, por outro lado com k
grande, a classificação fica menos sujeita a ruídos podendo ser considerada mais robusta, porém se k
for grande demais pode ser que haja o problema de underfitting.
Exemplos
k=3
k=3
k=5
- knn.py
import cv2 as cv import numpy as np import matplotlib.pyplot as plt # Feature set containing (x,y) values of 25 known/training data trainData = np.random.randint(0,100,(25,2)).astype(np.float32) # Label each one either Red or Blue with numbers 0 and 1 responses = np.random.randint(0,2,(25,1)).astype(np.float32) # Take Red neighbours and plot them red = trainData[responses.ravel()==0] plt.scatter(red[:,0],red[:,1],80,'r','^') # Take Blue neighbours and plot them blue = trainData[responses.ravel()==1] plt.scatter(blue[:,0],blue[:,1],80,'b','s') plt.show()