Mineração de Dados em Larga Escala
Informação
Corpo docente: Sérgio Matos
Duração: Semestral
Horas de trabalho: 162
Horas de contacto: 45
ECTS: 6
Área científica: Informática
Objetivos
O objetivo desta unidade curricular é expor aos alunos os desafios e estratégias algorítmicas para a análise de dados em larga escala, assim como às ferramentas e frameworks computacionais que permitem implementar tais algoritmos.
Após completar esta unidade curricular, os estudantes deverão ser capazes de identificar e aplicar as melhores abordagens para modelar e extrair conhecimento a partir de dados em larga escala, fluxos de dados e redes. Os estudantes ganharão também experiência com plataformas de processamento de dados como Apache Hadoop, Spark, Hive.
Resultados de Aprendizagem
O objetivo desta unidade curricular é expor aos alunos os desafios e estratégias algorítmicas para a análise de dados em larga escala, assim como às ferramentas e frameworks computacionais que permitem implementar tais algoritmos.
Após completar esta unidade curricular, os estudantes deverão ser capazes de identificar e aplicar as melhores abordagens para modelar e extrair conhecimento a partir de dados em larga escala, fluxos de dados e redes. Os estudantes ganharão também experiência com plataformas de processamento de dados como Apache Hadoop, Spark, Hive entre outros.
Requisitos
- Capacidade de programação em Python (ou Java) é essencial.
- Uso do terminal de comandos Linux será incentivado.
Avaliação
- 60.00% Trabalhos práticos
- 40.00% Exame teórico
Metodologia
A UC combinará exposições teóricas dos algoritmos e estratégias para abordar as diferentes formulações dos problemas, com um conjunto de mini-projetos orientados a ajudar os alunos a consolidar as noções teóricas e ganhar experiência prática. Apesar de as formulações matemáticas dos algoritmos serem essenciais para dar aos alunos uma compreensão analítica dos métodos, será colocada ênfase na aplicação desse conhecimento a problemas específicos através de implementações práticas.
Conteúdos
- Introdução: Mineração de dados; Desafios na mineração em larga escala; MapReduce, Hadoop, Spark.
- Mineração de conjuntos frequentes: Modelo 'market-basket'; Regras de associação; Algoritmo A-Priori
- Pesquisa por similaridade: Shingling, minhashing, Locality-sensitive hashing; Medidas de similaridade; Vizinho mais próximo por aproximação
- Fluxos de dados: Amostragem e filtragem; Windowing
- Aprendizagem automática em grandes conjuntos de dados: Métodos de agrupamento; Métodos de classificação; Paralelização
- Análise de ligações (links): Algoritmos PageRank eficientes; Hubs e Autoridades
- Análise e mineração de redes: Partições e comunidades; Mineração de redes sociais; Análise de redes biológicas
Bibliografia recomendada
- Leskovec, Rajaraman, Ullman. “Mining of massive datasets”. Cambridge University Press, 2014. Available at http://www.mmds.org/
- Easley, Kleinberg. “Networks, Crowds, and Markets: Reasoning About a Highly Connected World”. Cambridge University Press, 2010. Available at http://www.cs.cornell.edu/home/kleinber/networks-book/
- White. “Hadoop: The Definitive Guide”, Fourth Edition. O’Reilly Media, 2015.
- Kerzner, Maniyam. “Hadoop illuminated”. Online book: http://hadoopilluminated.com/