Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Trabalho Primeiro EP
Prof. Dr. Clodoaldo A. de Moraes Lima
Material baseado no livro “Patterson, David A., Hennessy, J. L.
- Computer Organization And Design: The Hardware/Software
Interface”
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 1 / 18
Descrição
Um problema de reconhecimento de padrão consiste de uma tarefa de
classificação ou categorização, onde as classes são definidas pelo projetista do
sistema (classificação supervisionada) ou são aprendidas de acordo com a
similaridade dos padrões (classificação não supervisionada).
O KNN ( K-vizinhos mais próximos do inglês K-nearest neighbors) costuma ser
um dos primeiros algoritmos aprendidos por iniciantes no mundo do aprendizado
de máquina. O KNN é muito utilizado em problemas de classificação, e felizmente
é um dos algoritmos de aprendizado de máquina mais fáceis de se compreender.
Em resumo, 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.
Neste trabalho deve ser implementado o algoritmo KNN.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 2 / 18
Descrição
Exemplo
Para entender como o KNN funciona detalhadamente, primeiro considere que
temos um conjunto de dados de treinamento dividido em duas classes: azul e
vermelho. Estes dados correspondem a dois arquivos, um com conjunto de
entrada e outro com o conjunto de sáıda desejado.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 3 / 18
Descrição
Exemplo
Agora recebemos uma amostra que ainda não está classificada, e gostaŕıamos de
definir se ela pertence à classe azul ou à classe vermelha. Digamos que essa nova
amostra (cor verde na figura abaixo) esteja localizada nessa região:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 4 / 18
Descrição
Exemplo
Intuitivamente, podemos observar que faz mais sentido classificar essa amostra
como pertencendo à classe vermelha. Mas o algoritmo não possui intuição, ele
precisa de um cálculo matemático para poder definir a solução.
No caso do KNN, a lógica é a seguinte: observa-se a classe dos vizinhos mais
próximos, em uma votação onde a maioria vence. Por exemplo, vamos supor que
estamos analisando os 3 vizinhos mais próximos. Obs: mais próximo significa com
a menor distância em relação à amostra:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 5 / 18
Descrição
Exemplo
Na figura acima, podemos ver que os 3 vizinhos mais próximos pertencem à classe
vermelha. Então como houve 3 votos a zero para a classe vermelha, essa amostra
fica sendo classificada nessa classe:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 6 / 18
Descrição
Exemplo
Obs: talvez agora esteja mais claro o significado do nome KNN, que refere-se a
k-vizinhos mais próximos, onde k é um número que podemos determinar. Nesse
exemplo, estamos usando k=3. Agora recebemos outra amostra que queremos
classificar:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 7 / 18
Descrição
Exemplo
Utilizando o mesmo método KNN com k=3:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 8 / 18
Descrição
Exemplo
Encontramos os 3 vizinhos mais próximos dessa amostra. Dessa vez, há duas
amostras da classe vermelha e uma da classe azul. Como a votação ficou 2x1 para
a classe vermelha, essa amostra ficaria sendo classificada nessa classe:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 9 / 18
Descrição
Exemplo
Essa metodologia poderia ser aplicada para qualquer nova amostra e estaŕıamos
aptos a definir sua devida classificação. Porém até agora utilizamos apenas o
exemplo de k=3. Na prática, podemos escolher outro valor de k. Vamos supor
que a mesma amostra anterior estivesse sendo analisada com o algoritmo de KNN
com k=5:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 10 / 18
Descrição
Exemplo
Dessa vez, dos 5 vizinhos mais próximos, 3 são azuis e 2 são vermelhos. Portanto
a classe vencedora foi a azul. Essa amostra seria classificada nessa classe:
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 11 / 18
Descrição
Exemplo
Nota-se que, dependendo do valor de k, poderemos ter resultados diferentes para
cada situação. Quando o k é pequeno, a classificação fica mais senśıvel a regiões
bem próximas (podendo ocorrer o problema de overfitting). Com k grande, a
classificação fica menos sujeita a rúıdos pode ser considerada mais robusta, porém
se k for grande demais, pode ser que haja o problema de underfitting.
Obs: nos exemplos desse artigo, tentamos mostrar visualmente quais eram os
vizinhos mais próximos em cada situação. Porém não podemos esquecer que a
forma como o algoritmo faz essa seleção é calculando a distância de cada um dos
pontos já classificados em relação à nova amostra que queremos classificar. Ou
seja, como nos exemplos havia cerca de 30 amostras já classificadas, o algoritmo
KNN teria que fazer o cálculo da distância de cada um desses pontos em relação à
nova amostra, e ordenar depois do menor ao maior, selecionando assim as
amostras mais próximas.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 12 / 18
Algoritmo KNN
Passo 1 - Para um dado não classificado, calcule distância do novo dado em
relação a cada um dos outros dados que já estão classificados;
Passo 2 - Selecione as k menores distâncias;
Passo 3 - Verifique a(s) classe(s) dos dados que tiveram as K menores
distâncias e contabilize a quantidade de vezes que cada classe que apareceu;
Passo 4 - Classifique esse novo dado como pertencente à classe que mais
apareceu.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 13 / 18
Descrição
O que deve ser feito
Sua tarefa neste trabalho será implementar o algoritmo KNN na linguagem
assembly.
O conjunto de treinamento está armazenado em dois arquivos: xtrain.txt,
ytrain.txt
O conjunto teste esta armazenado em dois arquivos: xtest.txt, ytest.txt
O tamanho máximo do vetor é denotado por n, não é conhecido a priori.
O Aluno deve varer o arquivo para identificar o número de entrada e
atributos.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 14 / 18
Requisitos
A função principal deve chamar uma função knn deve obrigatoriamente possuir a
seguinte assinatura:
Requisito 1
int knn(i float *xtrain, float *ytrain, float *xtest), onde:
knn: Nome da função (também em assembly);
retorno: classe correspondente;
float *xtrain: especifica a base do vetor de entrada do treinamento;
float *ytrain: especifica a base do vetor de sIS do treinamento;
float *xtrain: especifica a base do vetor de entrada do teste
Requisito 2
Os dados devem ser lidos de um arquivo, o qual ser passado como entrada para o
programa. A classe predita para o conjunto de teste deve ser escrita num arquivo.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 15 / 18
Entrega
O que deve ser entregue?
Documentação descrevendo a lógica principal da sua implementação;
Código do fonte do seu programa em assembly;
Documentação e código-fonte devem ser enviados como anexo para o
e-disciplina
Quem? Quando?
Grupos de 4 alunos.
Data da Entrega até o dia 24/10/2023 (23:59).
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 16 / 18
Dicas
Utilize o simulador MARS para executar e testar seu programa. Nele é
posśıvel acompanhar passo-a-passo a execução do algoritmo, além de saber o
valor de cada um dos registradores.
(http://courses.missouristate.edu/kenvollmar/mars/). Listagem
das chamadas de sistema dispońıveis no MARS: http://courses.
missouristate.edu/kenvollmar/mars/help/syscallhelp.html.
De modo a facilitar seu trabalho, codifique primeiro o programa em
linguagem de alto-ńıvel e depois simplesmente o traduza para assembly MIPS.
Utilizecomo referência os trechos de código abaixo. Eles podem ser úteis na
leitura dos dados digitados pelo usuário no MARS.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 17 / 18
(http://courses.missouristate.edu/kenvollmar/mars/)
http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp. html
http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp. html
Referências
PATTERSON, D. A., HENNESSY, J. L., Organização e Projeto de
Computadores: A Interface Hardware/ Software, Ed. Campus, 5a ed., 2014.
Prof. Dr. Clodoaldo A. de Moraes Lima Trabalho Primeiro EP 18 / 18

Mais conteúdos dessa disciplina