Cursos‎ > ‎

Computação Massiva e Algoritmos Paralelos 2020.1

Objetivos do Curso

O objetivo do curso é apresentar técnicas de Computação Massiva e Paralela para Mineração de Dados em uma quantidade muito grande de informações, virtualmente infinita. O curso visa apresentar uma introdução às técnicas mais conhecidas de mineração de dados e aplica-las em uma infraestrutura de computação distribuída de alto desempenho do Laboratório de Sistemas Digitais (LASID) baseado no Apache Spark. O curso não foca em detalhes de implementação e otimização dos algoritmos de ciência de dados individualmente, mas em como otimizá-los e utilizá-lo de forma distribuída. Sendo uma disciplina aplicada, ela tem uma composição de 50% de aula teórica e 50% de aula prática.

Como trabalho final da disciplina deverá ser escrito um texto, em formato de artigo, descrevendo uma experiência de mineração de dados na área de interesse do aluno.

Conteúdo programático

  1. Introdução à Mineração de Dados
  2. Infraestrutura de computação e Map-reduce.
  3. Revisão de Álgebra Linear e Estatística.
  4. Regras de Associação e Clustering
  5. Localizando Itens Semelhantes
  6. Análise de Enlace
  7. Sistemas de Recomendação
  8. Análise de Comunidades
  9. Redução de Dimensionalidade
  10. Aprendizagem de Máquina
  11. Tratamento de dados contínuos (Streaming)
  12. Aplicações prática no sistema Apache Spark distribuído.

Material do curso

Livro Texto

O livro texto do curso pode ser baixado em Mining of Massive Datasets

Slides do curso

Slides do curso Mineração Massiva de Dados 

Vídeo Aulas

Aula 01 - Introdução:  Parte 1a   Parte 1b 
Aula 02 - Infraestrutura MapReduce:  Parte 2a   Parte 2b   Parte 2c
Aula 03 - Revisão Matemática Estatística e Programação:  Parte 3a   Parte 3b   Parte 3c
Aula 04 - Agrupamento:  Parte 4a   Parte 4b
Aula 05 - Regras de Associação:  Parte 5a   Parte 5b
Aula 06 - Análise de Enlaces (Grafos):   Parte 6a   Parte 6b   Parte 6c
Aula 07 - Análise de Dados Similares:   Parte 7a   Parte 7b   Parte 7c  Parte 7d
Aula 08 - Análise de Comunidades:  Parte 8a   Parte 8b   Parte 8c
Aula 09 - Sistemas de Recomendação:  Parte 9a   Parte 9b   Parte 9c
Aula 10 - Redução de Dimensionalidade:  Parte 10a   Parte 10b   Parte 10c  Parte 10d
Aula 11 - Aprendizado de Máquina:   Parte 11a   Parte 11b   Parte 11c  Parte 11d
Aula 12 - Processamento Distribuído no Spark:   Parte 12a   Parte 12b   Parte 12c 
Aula 13 - Dados Contínuos (Streaming):   Parte 13a   Parte 13b   Parte 13c

Leitura Complementar

 Este curso é baseado no curso Mining of Massive Datasets dos professores Jure Leskovec, Anand Rajaraman e Jeff Ullman  da Universidade de Stanford. Os slides originais do curso, o material didático e videoaulas podem ser acessadas em MMDS.

Recursos computacionais

O link para acessar o sistema Jupyter Lab é: LasidHub

Os programas e dados usados nas aulas práticas estão em Mineração Massiva de Dados 

Para acessar o sistema JupyterLab é necessário criar uma conta durante a aula.

Guia de programação

Exemplos de código Python para desenhar gráficos: The Python Graph Gallery

Planejamento de aula

Recomendo que os alunos assistam as vídeo aulas previamente para que seja possível discutir o assunto e tirar dúvidas durante a aula síncrona. 

A previsão dos assuntos a serem discutidos nas aulas síncronas é mostrado a seguir:

Aula 01 - Introdução:   30/10/2020
Aula 02 - Infraestrutura MapReduce:  06/11/2020
Aula 03 - Revisão Matemática Estatística e Programação:  Não haverá aula síncrona, assista se houver dúvida. 
Aula 04 - Agrupamento:  13/11/2020 
Aula 05 - Regras de Associação: 20/11/2020
Aula 06 - Análise de Enlaces (Grafos):   27/11/2020 
Aula 07 - Análise de Dados Similares:  04/12/2020 
Aula 08 - Análise de Comunidades:  11/12/2020
Aula 09 - Sistemas de Recomendação:  18/12/2020
Aula 10 - Redução de Dimensionalidade:  08/01/2021
Aula 11 - Aprendizado de Máquina:  15/01/2021
Aula 12 - Processamento Distribuído no Spark:  22/01/2021
Aula 13 - Dados Contínuos (Streaming):   29/01/2021

Trabalho Final

Como trabalho final cada aluno deverá apresentar uma proposta e implementação de sistema de mineração de dados a sua escolha. O trabalho pode ser individual ou em grupos pequenos (2 ou 3 participantes). Será marcado uma data para cada grupo fazer uma apresentação do trabalho desenvolvido e os resultados obtidos.

Deverá ser preparado um documento em formato "artigo" com os seguintes tópicos:

  1. Título
  2. Resumo/Abstract
  3. Introdução/Motivação
  4. Trabalhos Relacionados
  5. Fundamentação Teórica
  6. Apresentação da Proposta
  7. Implementação e validação da proposta
  8. Conclusão
  9. Bibliografia

Temas sugeridos

Para ajudar na definição do tema para quem não tem nenhuma ideia, sugerimos alguns temas. Esses temas foram de compatições de mineração de dados, então, as bases de dados estão corretar e é possível obter algum resultado.

Predição de sobrevivência no Titanic

Objetivo: Prever se o passageiro irá sobreviver ao afundamento do Titanic
Técnica: Machine learning

Sugestão de viagem Airbnb

Objetivo: Recomendar qual pais um usuario do Airbnb vai visitar
Técnica: Sistema de recomendação e/ou Machine Learning

Recomendação de Livros 

Objetivo: Recomendar livros baseado nos dados e avaliação dos leitores
Técnica: Sistema de recomendação

Predição de doença cardiaca

Objetivo: A partir de dados clinicos de pacientes predizer se ele possui doenca cardiaca (coluna 58)
Técnica: Redução de dimensionalidade e/ou Machine Learning

Classificação de Cogumelos

Objetivo: Identificar se o cogumelo é comestível ou venenoso.
Técnica: Redução de dimensionalidade e/ou Machine Learning

Calendário de apresentações do Trabalho Final

xx/xx:
Fulano: Título do trabalho

Avaliação

A avaliação do curso se dará por uma nota pela participação em sala de aula e atividades práticas em sala, e a nota atribuída ao trabalho final.

Calendário

Início do curso: 23/10/2020
Datas de apresentação do Trabalho Final: vide programação acima
Data de entrega do texto escrito do Trabalho Final: 19/02/2021
Fim do curso: 27/02/2021
Comments