Coder Social home page Coder Social logo

pi-v's People

Contributors

aipi avatar brunamsena avatar shodi avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pi-v's Issues

Transcrever e parametrizar o Cross Validation

O cross validation precisa ser transcrito para um linguagem mais performática.

A Validação Cruzada (ou também conhecido como Cross Validation) é uma técnica para avaliação de classificadores.

Para esse trabalho, considere que:

  • Embaralhe o conjunto de entrada antes de aplicar o Cross Validation.
  • Utilizaremos o 10-fold Cross Validation, que consiste em dividir a amostra em 10 partes de tamanhos (aproximadamente) iguais. Repetir 10 rodadas de treinamento, deixando alternadamente uma das partes para teste em cada rodada.
  • Para cada "rodada" do Cross Validation, você deverá calcular o erro amostral (veja o erro amostral do método Holdout no slide da aula de "Estimação de Erro").
  • Ao término de todas as rodadas do Cross-Validation, você deverá calcular o erro de validação cruzada, que é dado pela média dos erros amostrais das 10 rodadas.

Gerar mapa de calor (HEATMAP)

Depois da execução do LVQ, para cada raio R escolhido você deverá gerar um Mapa de Calor semelhante aos da imagem mostrada a seguir.

Para gerar um Mapa de Calor, você deve fazer o seguinte:

  1. Associe uma cor para cada classe do conjunto de entrada;
  2. Execute o 10-fold Cross Validation normalmente;
  3. Considere somente a matriz de neurônios M como o da última rodada do Cross Validation executado;
  4. Considere X como o conjunto de entrada inteiro (ou seja, sem as partições do Cross Validation).
  5. Para cada instância x do conjunto X, faça:
    a. Associe x ao neurônio mais próximo da matriz de neurônio N.
    b. Marque o neurônio encontrado pela cor da classe da instância x;
  6. Imprima na tela o mapa de neurônios.

Você deve fazer isso para cada conjunto de dados e cada configuração R do LVQ. Portanto, para cada conjunto de dados teremos 4 mapas de calor (R = 1 até R = N).

Apresente esses mapas no relatório.

Montar "matriz de confusão multi-nível".

Essa matriz consiste em uma matriz N x N, sendo N a quantidade de classes, que apresenta a quantidade de elementos X classificados como Y, sendo X e Y duas classes iguais ou diferentes.

Um exemplo da matriz de confusão aparece abaixo para o conjunto de dados Iris. As linhas representam as classes corretas (esperadas) e as colunas são as que seu modelo gerou ou respondeu.

#11 Lembre-se que, para cada configuração do LVQ haverá uma tabela dessas, ou seja, uma tabela para o algoritmo para R = 1, quando R = 3, etc. O objetivo aqui é comparar qual a melhor configuração R do algoritmo.

Normalizar os dados antes de salvar no .csv

Os dados devem ser normalizador usando o seguinte padrão:

dado 1 dado 2 dado 3 categoria
x11 x12 x13 0
x21 x22 x23 1
x31 x32 x33 1

Deve ser feito a distância euclidiana nas colunas e também a label deve ser o último.

Categoria 1 = Mulher
Categoria 2 = Homem

Calcular Acurácia

Acurácia = Pontos Classificados Corretamente / Total número de pontos
Um exemplo de acurácia na tabela acima temos o seguinte:
Pontos classificados corretamente = 12 + 16 + 16 = 44
Número total de pontos = 12 + 16 + 16 + 1 + 1 + 1 = 47
Acurácia = 44 / 47 = 93.62%

Criar Relatório do que foi feito

O relatório deverá ser confeccionado categorizado por:

Para cada conjunto de dados utilizado:

  1. Para cada versão do algoritmo LVQ.
    a. Mostrar resultado (binário ou multiclasse)
    b. Conclusões da equipe sobre os resultados desta execução. Para cada execução, deverá haver uma análise comparativa aos resultados das outras versões do algoritmo LVQ
  2. Depois de mostrar os resultados de cada versão, descrever qual foi o melhor raio escolhido e o por quê.
  3. Comparar os resultados do conjunto do melhor raio escolhido com os resultados do melhor k encontrado usando o algoritmo k-Nearest-Neighbours (Trabalho 1).

Veja a seção do experimento onde há detalhes sobre a matriz de confusão e outras informações.

Gravar vídeo explicando o algoritmo

Você e sua equipe deverão elaborar um vídeo da tela explicando:

  1. Algoritmo: você deverá mostrar como está estruturado e como funciona cada parte do seu código-fonte.
  2. Execução: você deverá escolher um conjunto de dados (por exemplo, Íris) e uma versão (por exemplo, o LVQ com R = N / 2) e mostrar a sua execução, explicando o que está acontecendo. Procure não escolher o R = 1 por ser muito simplista.
    Não precisa mostrar a execução de outro conjunto e de outra versão do LVQ pois o vídeo ficará muito extenso.

Nessa parte, você deverá utilizar um software gravador de tela. Os sistemas Windows 10 e macOS possuem softwares gravadores de tela nativos.

Desenvolver o código do Learning Vector Quantization (LVQ)

SUBTASKS:

  • Geração de números aleatórios para peso de cada neurônio de 0.01 à 1
  • Função que faz o cálculo de tamanho da rede
  • Média, Desvio padrão (?)

VERSÕES DO ALGORITMO

Uma forma de considerar os vizinhos do neurônio vencedor seria criar um raio a partir do neurônio vencedor.

Vamos definir por N a largura (ou altura) da rede de neurônios. Deixe que o raio de vizinhos R seja parametrizável no seu algoritmo, pois precisaremos para o Cross Validation.

Assim, faremos 4 execuções para diferentes valores de R, como mostrado a seguir:

  • R = 1;
  • R = 3;
  • R = N / 2;
  • R = N

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.