Machine Learning

Conhecimentos de Base Recomendados

É recomendável que os alunos possuam conhecimentos sólidos de matemática, estatística assim como de programação em Python.

Métodos de Ensino

A nota final da disciplina é obtida através da seguinte expressão:

Nota final = 0.6 * Exame + 0.4 * Avaliação Prática

Os componentes possuem pesos diferenciados:

  • Exame: 12 Valores;
  • Trabalho Prático: 8 Valores;

Exame

  • Exame escrito, sem consulta, que incidirá sobre os conteúdos lecionados nas aulas teóricas e práticas.
  • É obrigatória a obtenção de uma classificação igual ou superior a 35%. A não obtenção desta classificação mínima implica a reprovação à disciplina.
  • Não são permitidos quaisquer processos informais de melhoria de classificação entre épocas de exame.
  • O exame será realizado nos períodos destinados às épocas de exame (Normal, Recurso, Especial).

Avaliação Prática

  • A implementar com base no ambiente Python.
  • Os alunos devem formar grupos de 2 alunos
  • Previstos 2 momentos de avaliação:
    • M1 – 3 valores
    • M2 – 5 valores
    • Em cada um dos momentos de avaliação os alunos terão de:

 Apresentar nas aulas prática o trabalho realizado

  • Apresentação oral (máx. 10 minutos)

 Elaborar um pequeno documento em que apresente de forma totalmente objetiva e condensada (máx. 10 páginas) o trabalho realizado

  • Deve ser entregue em data anterior à da apresentação na aula.
  • A nota do trabalho prático será considerada em todas as épocas de exame a realizar durante o ano letivo (Normal, Recurso, Especial). Como tal, não existirá nova oportunidade para a realização/entrega dos elementos de avaliação

Resultados de Aprendizagem

Pretende-se que os alunos adquiram um conjunto de conhecimentos e competências na área de Machine Learning, nomeadamente:

  • Conhecer as etapas de um projeto real baseado em Machine Learning
  • Analisar e preparar um conjunto de dados
  • Identificar de forma correta os aspetos relativos à classificação (métricas, estratégias de validação, …)
  • Conhecer e aplicar alguns dos algoritmos mais relevantes na Aprendizagem Supervisionada
  • Conhecer e aplicar os algoritmos mais relevantes na Aprendizagem Não Supervisionada

Programa

Componente Teórica

Cap.1 – Introdução

  • Data Mining /Machine Learning
  • Tipos de Aprendizagem
  • Classificação/Regressão
  • Principais Desafios
  • Notação Matemática

Cap.2 – Dados: Conceitos Fundamentais

  • Tipos de dados
  • Estatística Descritiva
  • Variável Aleatória
  • Distribuições de Dados
  • Limpeza dos Dados

Cap. 3 – Etapas Principais de um Projeto

  • Identificação/Contextualização do problema
  • Obtenção dos dados
  • Visualização e preparação dos dados
  • Seleção e treino do modelo
  • Sintonização/ajuste do modelo
  • Monitorização e Manutenção

Cap. 4 – Classificação

  • Estratégias de Validação
  • Métricas de Avaliação

Cap. 5 – Aprendizagem Supervisionada

  • Regressão Linear
  • Regressão Logistica
  • Naïve Bayes
  • Árvores de Decisão
  • Support Vector Machine
  • KNN-nearest Neighbour
  • Random Forest
  • XGBoost
  • Redes Neuronais

 Cap. 6 – Aprendizagem Não Supervisionada

  • Clustering
    • K-means
    • Subtractive Clustering
    • Principal Component Analysis

 

Componente Prática

  • Python aplicado à Análise de Dados
    • Numpy
    • Scipy
    • Pandas
    • Matplotlib
    • Seaborn
    • Scikit-learn
    • Análise e Preparação dos Dados
    • Aprendizagem Supervisionada

Aprendizagem Não Supervisionada

Estágio(s)

NAO

Bibliografia