área científica
Informática
idioma(s) de lecionação
Português, Inglês
objectivos
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.
competências
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.
conteúdos
1. Introdução
a) Mineração de dados
b) Desafios na mineração em larga escala
c) MapReduce, Hadoop, Spark
2. Mineração de conjuntos frequentes
a) Modelo 'market-basket'
b) Regras de associação
c) Algoritmo A-Priori
3. Pesquisa por similaridade
a) Shingling, minhashing, Locality-sensitive hashing
b) Medidas de similaridade
c) Vizinho mais próximo por aproximação
4. Fluxos de dados
a) Amostragem e filtragem
b) Windowing
5. Aprendizagem automática em grandes conjuntos de dados
a) Métodos de agrupamento
b) Métodos de classificação
c) Paralelização
d) Agrupamento e classificação sobre fluxos de dados
6. Análise de ligações (links)
a) Algoritmos PageRank eficientes
b) Hubs e Autoridades
7. Análise e mineração de redes
a) Partições e comunidades
b) Mineração de redes sociais
c) Análise de redes biológicas
avaliação
Avaliação discreta:
- 70.00% TP Trabalhos práticos
- 20.00% TP Exame teórico
- 10.00% TP Questionários
Avaliação Final:
- 70.00% TP Trabalho prático
- 30.00% TP Exame teórico
requisitos
Capacidade de programação em Python (ou Java) é essencial.
Uso do terminal de comandos Linux será incentivado.
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.
A avaliação será baseada em mini-projetos (70%), cobrindo parte dos tópicos expostos, questionários (10%), e num exame individual final (20%).
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/