knearest
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
knearest [2023/07/08 13:58] – jdos | knearest [2023/07/08 15:11] (atual) – [k=5] jdos | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
====== K-Nearest Neighbour ====== | ====== 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. | + | kNN é um dos algoritmos de **classificação** mais simples disponíveis para aprendizado supervisionado. |
- | O KNN tenta classificar cada amostra | + | A ideia é procurar as correspondências mais próximas dos dados de teste no espaço |
- | Como o próprio nome já diz, " | + | 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 | ||
===== Exemplos ===== | ===== Exemplos ===== | ||
Linha 23: | Linha 33: | ||
{{: | {{: | ||
+ | ==== 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 ===== | ===== Referências ===== | ||
[[https:// | [[https:// |
knearest.1688835537.txt.gz · Última modificação: 2023/07/08 13:58 por jdos