Ferramentas do usuário

Ferramentas do site


knearest

Essa é uma revisão anterior do documento!


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()

Resultado:

result: [[1.]]

neighbours: [[0. 1. 1.]]

distance: [[185. 290. 349.]]

Referências

knearest.1688837166.txt.gz · Última modificação: 2023/07/08 14:26 por jdos

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki