Você está na página 1de 3

UFRN - ELE 606 – 2023.1 - Prof. José Alfredo F.

Costa
Primeira simulação IA -> KNN – K-vizinhos mais próximos

Natal, 8/3/23

Pessoal, boa noite.

Ontem tivemos nossa primeira aula / reunião, via Google Meet.


Usaremos para a turma o endereço fixo https://meet.google.com/ckc-augj-dem

Quem desejar ‘rever’ nossa reunião de ontem, veja:


Reunião turma IA 2023.1 - ELE 606 Prof. José Alfredo Costa - 2023-03-08
Link do vídeo - https://youtu.be/RMNYhGawV84

Solicitei que vocês assistam ao vídeo (pessoal da USP São Carlos):


Aula 01 - Introdução à Machine Learning e KNN -
https://www.youtube.com/watch?v=_EhfAOSITJw&t=1902s

E vejam os materiais em --> Link para material -


> https://drive.google.com/drive/folders/1co8q-Z9vNHHNN-_JQJpHGSVsxNbJNEhf

Se você não tem familiaridade com Python, assista ao curso (grátis):

https://www.datascienceacademy.com.br/course/fundamentos-de-linguagem-python-
para-analise-de-dados-e-data-science (dá diploma ao final).

Bem, lembrei a todos a assistirem ao minicurso do pessoal do DATA ICMC (USP São
Carlos) ->

• Introdução à Data Science com Python -


https://www.youtube.com/watch?v=pjT_0nPiSqQ&list=PLFE-
LjWAAP9SfEuLXf3qrpw4szKWjlYq9
o Materiais disponíveis em https://github.com/icmc-data/Intro-Data-
Science-Youtube
• Há também a aula sobre KNN – vejam
o Aula 01 - Introdução e k-Nearest Neighbors | Curso Ciência de Dados e
Machine Learning - https://youtu.be/dd3RmNfThF8
o Material em -> https://github.com/icmc-data/Intro-DS-
2020.1/tree/master/Aula1
o Vejam os materiais em https://github.com/icmc-data/Intro-DS-
2020.1/blob/master/Aula1/Aula%201%20-%20Intro.pdf e
https://github.com/icmc-data/Intro-DS-
2020.1/blob/master/Aula1/Aula%201%20-%20KNN.pdf
o Rodar em Python (Jupyter) os códigos em https://github.com/icmc-
data/Intro-DS-2020.1/blob/master/Aula1/kNN.zip

Trabalho (exercício):
Com a base de dados IRIS (https://archive.ics.uci.edu/ml/datasets/iris), rodar o KNN
sorteando um número N de amostras das 3 classes para ser a base de dados das
instâncias. Usar as outras para testar.
Ex. N = 5. Como a base de dados tem 150 padrões, em 3 classes, teremos 5
(aleatoriamente) padrões para cada classe, totalizando 15 padrões (instâncias) para a
‘memória’ do classificador.
Calcular distâncias das 135 remanescentes, considerando k = 1, 3, 5, 7 e 9. Quando k =
1, reduz a ‘vizinhos mais próximos’. K está relacionado a votação.
Para montar uma tabela que mostre a acurácia, i.e., número de acertos dividido pelo
total de padrões (cardinalidade) da base de teste.

K (número de vizinhos mais próximos)


Tamanho
da
amostra 1 3 5 7 9
por
classe
5
10
15
20
25
30

Lembrem de fazer 10 rodadas para cada experimento. Cada célula acima representa a
média dos acertos na base de dados teste para as 10 simulações. Vocês podem também
guardar a pior e a melhor simulação, além de ter o desvio padrão (que dará uma ideia se
o algoritmo é estável ou não).
Investigar se em Python dá para ‘medir’ o esforço computacional de um algoritmo. Se
sim, a tabela acima poderia também ter o ‘número de operações’ e o ‘uso de memória’.
Fazer também a Confusion Matrix, para as médias de 10 simulações:
Classe 1 2 3
1
2
3
Obs: O trabalho consiste em gerar código (Python) e relatório, enviando tudo zipado
pelo sigaa e/ou colocando em uma pasta no Google Drive e compartilhando, no sigaa, o
endereço.

OBS.2: Para alguns, no início haverá dificuldades, porém, iremos, com tolerância,
avançando nas simulações e discussões. Discutiremos a atividade na próxima quarta,
15/3, às 19:30 h.

Materiais adicionais para consulta / estudos:

• KNN e os K vizinhos mais próximos -


https://www.youtube.com/watch?v=gJK4fmCvcWY (mostra uso da Iris e
algoritmo knn com Python)
• a6v3: Classificador K-NN (k vizinhos mais próximos) -
https://www.youtube.com/watch?v=WeNMhuNecto
• Aprendizagem de máquina com o KNN -
https://www.youtube.com/watch?v=_3uA9tGBx0s
• Powerpoint - Aprendizagem de Máquina- Aprendizagem Baseada em Instâncias
- http://www.eletrica.ufpr.br/ufpr2/professor/36/TE808/6-kNN-AM.pdf

Há muitos outros materiais na internet, ex. https://www.maxwell.vrac.puc-


rio.br/7587/7587_6.PDF

• KNN em Python - https://machinelearningmastery.com/tutorial-to-implement-k-


nearest-neighbors-in-python-from-scratch/
• E este: https://medium.com/@joaopcanario/mostre-me-o-c%C3%B3digo-
99398769113e

Aplicação prática em Python do algoritmo K-Nearest Neighbor (KNN)

• https://www.linkedin.com/pulse/aplica%C3%A7%C3%A3o-pr%C3%A1tica-
em-python-do-algoritmo-k-nearest-knn-rober-junior

• Python KNN Algorithm Tutorial | Python for Big Data Analytics | Edureka -
https://www.youtube.com/watch?v=8pTlCJX59Do

Bons estudos!

Até breve,

José Alfredo Costa


E-mail: jafcosta@gmail.com

Você também pode gostar