Ferramentas do usuário

Ferramentas do site


knearest

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
knearest [2023/07/08 14:14] – [k=5] jdosknearest [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 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+A ideia é procurar as correspondências mais próximas dos dados de teste no espaço de recursos.
  
-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.+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 ===== ===== Exemplos =====
Linha 22: Linha 32:
 ==== k=5 ==== ==== k=5 ====
 {{:proxima-amostra.jpg?nolink&200 |}}{{:knn-com-k5-300x292.jpg?nolink&200|}}{{:classe-final-com-k5-300x292.jpg?nolink&200|}} {{:proxima-amostra.jpg?nolink&200 |}}{{:knn-com-k5-300x292.jpg?nolink&200|}}{{:classe-final-com-k5-300x292.jpg?nolink&200|}}
 +
 +==== Código ====
  
 <file python knn.py> <file python knn.py>
Linha 38: Linha 50:
 blue = trainData[responses.ravel()==1] blue = trainData[responses.ravel()==1]
 plt.scatter(blue[:,0],blue[:,1],80,'b','s') plt.scatter(blue[:,0],blue[:,1],80,'b','s')
 +plt.show()
 +
 +newcomer = np.random.randint(0,100,(1,2)).astype(np.float32)
 +plt.scatter(newcomer[:,0],newcomer[:,1],80,'g','o')
 +knn = cv.ml.KNearest_create()
 +knn.train(trainData, cv.ml.ROW_SAMPLE, responses)
 +ret, results, neighbours ,dist = knn.findNearest(newcomer, 3)
 +print( "result: {}\n".format(results) )
 +print( "neighbours: {}\n".format(neighbours) )
 +print( "distance: {}\n".format(dist) )
 plt.show() plt.show()
 </file> </file>
  
-{{ :knn.png?nolink&400 |}}+Resultado: 
 + 
 +{{ :espaco.png?nolink&500 |}} 
 + 
 +\\  
 +<code> 
 +result: [[1.]] 
 + 
 +neighbours: [[0. 1. 1.]]
  
 +distance: [[185. 290. 349.]]
 +</code>
  
 ===== Referências ===== ===== Referências =====
  
 [[https://didatica.tech/o-que-e-e-como-funciona-o-algoritmo-knn/|Algoritmo Knn]] [[https://didatica.tech/o-que-e-e-como-funciona-o-algoritmo-knn/|Algoritmo Knn]]
knearest.1688836494.txt.gz · Última modificação: 2023/07/08 14:14 por jdos

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki