Skip to content
This repository has been archived by the owner on Mar 23, 2023. It is now read-only.

Latest commit

 

History

History
48 lines (34 loc) · 5.6 KB

INSTRUCTIONS.md

File metadata and controls

48 lines (34 loc) · 5.6 KB

AG002 - Engenharia de Computação e Software

1. Introdução

Neste semestre a AG002 acontecerá na forma de um trabalho prático. Você deverá utilizar seus conhecimentos para, a partir do conjunto de dados proposto, treinar, avaliar e disponibilizar um modelo de aprendizado de máquina para apontar o desfecho de uma partida de jogo da velha.

Imagem 1: Jogo da Velha

2. Conjunto de Dados

Jogo da velha é um jogo para duas pessoas que requer apenas lápis e papel. O tabuleiro é uma matriz de três linhas por três colunas. Cada jogador se reveza desenhando uma cruz ou um círculo em uma posição desta matriz. O vencedor é aquele que conseguir colocar três peças iguais em uma fileira, na vertical, na horizontal ou na diagonal (conforme ilustrado na figura).

Neste sentido, o conjunto de dados apresenta 958 amostras, que representam todos as possíveisde preencher o tabuleiro do jogo da velha. Cada amostra do conjunto é dada por:

  • Nove atributos (enumerados de 1 a 9) que representam o estado de cada posição do tabuleiro; os possíveis valores são x (cruz), b (vazio) ou o (círculo).
  • Um rótulo de classe, que representa o desfecho daquela configuração em particular; os possíveis valores são "positivo" (que indica a vitória do x) ou "negativo" (que indica empate ou derrota do x).

Neste trabalho será utilizada uma versão traduzida do conjunto originalmente concebido por Aha [1] em 1991. Os dados originais foram obtidos do UCI Machine Learning Repository.

3. Etapas para Realização

  1. Baixar o conjunto de dados em formato CSV (comma-separated-values).
  2. Fazer a leitura dos dados utilizando a biblioteca Pandas.
  3. Converter os valores presentes no conjunto de dados para números inteiros, de acordo comeste mapeamento: o→−1, b→0, x→+1 , negativo→−1 e positivo→+1. Dica: método replace, presente na classe DataFrame do Pandas.
  4. Escolher um dos modelos de classificação a seguir:
  5. Separar o conjunto de dados em duas partes: 80% para treinamento e 20% para testes.
    • Treinar o modelo escolhido usando 80% dos dados.
    • Avaliar o modelo escolhido usando os 20% restantes.
  6. Exibir métricas de avaliação, para que possa ser verificada a acurácia do modelo.
  7. Criar uma opção que permita ao usuário inserir dados arbitrários que devem ser classificados pelo modelo. O modelo deverá imprimir se, com base no conhecimento adquirido com os dados do conjunto, os dados inseridos constituem vitória de x ("sim" ou "não"). Dica: método predict, presente em todos os classificadores.

4. Orientações Adicionais

  • O trabalho deverá ser feito em dupla;
  • Qualquer linguagem de programação pode ser utilizada;
  • A entrega deverá ser feita por meio de um arquivo zip com todo o conteúdo do projeto, ou o link de um repositório privado do GitHub;
  • Para apresentação, o aluno deverá gravar um vídeo de no máximo 7min de duração, explicando em detalhes as etapas do projeto desenvolvido;
  • O vídeo poderá ser feito gravando a própria tela do computador enquanto o aluno explica ou até mesmo ser usado o smartphone, desde que as explicações das etapas estejam nítidas;
  • A entrega deve ser feita até o dia 26/06/2022. Disponibilize vídeo e arquivo zip (se for usar) no OneDrive, com permissão de acesso para guilherme@inatel.br. Se usar GitHub (em vez de arquivo zip), disponibilize link também com permissão de acesso.

5. Referências

[1] David W Aha. Tic-Tac-Toe Endgame database. Ago. de 1991. URL: https://archive.ics.uci.edu/ml/datasets/Tic-Tac-Toe+Endgame.