ia:knearest
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anterior | |||
| ia:knearest [2026/07/22 12:21] – removida - edição externa (Data desconhecida) 127.0.0.1 | ia:knearest [2026/07/22 12:21] (atual) – ↷ Página movida de knearest para ia:knearest jdos | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== 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, " | ||
| + | |||
| + | Quando o '' | ||
| + | |||
| + | Por outro lado com '' | ||
| + | |||
| + | Porém se '' | ||
| + | |||
| + | ===== Exemplos ===== | ||
| + | |||
| + | |||
| + | ==== k=3 ==== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== k=3 ==== | ||
| + | \\ | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | \\ | ||
| + | ==== k=5 ==== | ||
| + | {{: | ||
| + | |||
| + | ==== Código ==== | ||
| + | |||
| + | <file python knn.py> | ||
| + | |||
| + | import cv2 as cv | ||
| + | import numpy as np | ||
| + | import matplotlib.pyplot as plt | ||
| + | # Feature set containing (x,y) values of 25 known/ | ||
| + | trainData = np.random.randint(0, | ||
| + | # Label each one either Red or Blue with numbers 0 and 1 | ||
| + | responses = np.random.randint(0, | ||
| + | # Take Red neighbours and plot them | ||
| + | red = trainData[responses.ravel()==0] | ||
| + | plt.scatter(red[:, | ||
| + | # Take Blue neighbours and plot them | ||
| + | blue = trainData[responses.ravel()==1] | ||
| + | plt.scatter(blue[:, | ||
| + | plt.show() | ||
| + | |||
| + | newcomer = np.random.randint(0, | ||
| + | plt.scatter(newcomer[:, | ||
| + | knn = cv.ml.KNearest_create() | ||
| + | knn.train(trainData, | ||
| + | ret, results, neighbours ,dist = knn.findNearest(newcomer, | ||
| + | print( " | ||
| + | print( " | ||
| + | print( " | ||
| + | plt.show() | ||
| + | </ | ||
| + | |||
| + | Resultado: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | \\ | ||
| + | < | ||
| + | result: [[1.]] | ||
| + | |||
| + | neighbours: [[0. 1. 1.]] | ||
| + | |||
| + | distance: [[185. 290. 349.]] | ||
| + | </ | ||
| + | |||
| + | ===== Referências ===== | ||
| + | |||
| + | [[https:// | ||
