Bem-vindo ao site da disciplina EST0133 - Introdução à Modelagem de Big Data, ministrada aos alunos do Bacharelado em Estatística da UFRN. O material contido aqui está sendo utilizado durante o semestre 2024.2. Atualmente não é possível aceitar alunos de fora da universidade nesse curso, mas o material está aberto a quem quiser utilizá-lo.
Pré-requisitos: Métodos Estatísticos (EST0114) e Introdução ao R (EST0091)
Métodos Estatísticos é uma disciplina que mostra aos alunos os testes estatísticos mais comuns, como teste t, regressão linear simples e qui-quadrado.
Introdução ao R, como o nome sugere, é uma disciplina que apresenta a linguagem de programação R
aos alunos.
Ementa: Obtenção e preparação de dados para análise. Redução de dimensionalidade. Algoritmos de agrupamento e classificação de dados. Modelos preditivos.
Objetivos: Apresentar o conceito de big data e mineração de dados aos alunos, para que eles possam ganhar experiência na resolução de problemas de modelagem, além de desenvolver habilidades de estudo e pesquisa independentes. É uma disciplina prática, com utilização intensa de algoritmos computacionais.
Instrutor: Marcus Nunes
Os assuntos a serem tratados nessa disciplina estão descritos abaixo. Em resumo, veremos assuntos relacionados a aprendizagem de máquina. Devido a limitações de hardware, não trabalharemos com big data em si, mas os assuntos vistos aqui podem ser escalados para conjuntos de dados de qualquer tamanho.
Além disso, essa é uma disciplina predominantemente prática. Nosso objetivo com ela é desenvolver habilidades na resolução de problemas de modelagem. Por isso, queremos entender os métodos utilizados aqui de maneira superficial, mas suficiente para que tenhamos uma ideia intuitiva de como eles funcionam matematicamente.
As datas informadas abaixo são uma tentativa de organização do conteúdo da disciplina. Podem haver algumas pequenas alterações, a depender do desenrolar do semestre. Note que todas as datas informadas são terças-feiras. Perceba também que essas são as datas dos nossos encontros síncronos.
Data | Assunto |
---|---|
17/09 | Introdução |
24/09 | Obtenção de Dados |
10/10 | Análise de Componentes Principais |
17/10 | K-Means |
24/10 | Clusterização Hierárquica |
31/10 | Avaliação I |
29/10 | Validação Cruzada |
05/11 | K Vizinhos Mais Próximos |
12/11 | Máquinas de Vetor Suporte |
19/11 | Árvores de Classificação e Regressão |
26/11 | Random Forest |
05/12 | Avaliação II |
12/12 | Projeto Final - Dúvidas |
19/12 | Projeto Final - Apresentação |
09/01 | Quarta prova |
A organização dos conteúdos está ligeiramente diferente daquela registrada no SIGAA, mas a disciplina está passando por uma reformulação nesse semestre e as mudanças atuais, caso bem sucedidas, serão implementadas à versão oficial.
O material do curso, como slides, conjuntos de dados e exemplos de códigos, está disponível no github. Lá também está a lista de pacotes do R
a serem instalados em sua máquina para que o curso possa ser acompanhado. Clique aqui para ver um tutorial sobre como automatizar o download de todo o conteúdo da disciplina para o seu computador.
A lista completa com as aulas assíncronas se encontra em uma playlist no YouTube. Não é esperado que os alunos tenham assistido aos vídeos antes das aulas presenciais, mas essa é uma tarefa encorajada.
As duas primeiras avaliações da disciplina serão individuais. Elas ocorrerão ao final das Unidades I e II. A primeira delas se baseará em tarefas de clusterização, enquanto a segunda conterá tarefas de classificação e regressão. A terceira avaliação é o projeto final de análise de dados, descrito em detalhes na próxima seção.
Os alunos são incentivados a trabalharem em conjunto na resolução dos problemas das avaliações, mas plágios não serão tolerados.
O projeto final é a última avaliação da turma de Introdução à Modelagem de Big Data do semestre 2024.2. É um projeto de análise de dados, com assunto e escopo definido pelo próprio aluno, que deverá vir acompanhado de um relatório escrito em R Markdown e que deverá ser apresentado em sala de aula no dia 19/12/2024.
Este projeto visa avaliar aquilo que os alunos aprenderam durante o curso. Serão formados grupos de até três alunos, que irão realizar a análise de um conjunto de dados à sua escolha. Esta escolha é de inteira responsabilidade dos alunos. Algumas sugestões de áreas para o projeto são
Esportes
Cinema
Finanças
Dados de saúde
Informações governamentais
Cada grupo deverá obter um banco de dados em algum destes assuntos ou outros, de modo a responder perguntas a seu respeito. É possível usar dados de suas próprias pesquisas, caso o aluno queira propor uma nova maneira de abordar seu trabalho. As perguntas a serem respondidas serão formuladas pelos próprios alunos. A única obrigatoriedade é a aplicação de ferramentas de análise de dados vistas no curso. Os grupos que quiserem propor a utilização de uma nova ferramenta que tenha similaridade com aquelas que vimos em aula sintam-se encorajados a fazê-lo. Algumas boas fontes para procura de dados:
Portal de Dados Abertos - https://dados.gov.br/
Portal de Dados Abertos da UFRN - https://dados.ufrn.br/
Kaggle - https://www.kaggle.com/datasets
Data is Plural - https://www.data-is-plural.com/
UCI Machine Learning Repository - http://archive.ics.uci.edu/ml/
Repositório com os desafios da Tidy Tuesday - https://github.com/rfordatascience/tidytuesday
Slides da aula Obtenção de Dados
Há duas restrições a respeito dos dados a serem analisados:
Eles não podem ter sido analisados previamente em alguma aula da disciplina
Não podem haver dois ou mais grupos com bancos de dados que sejam subconjuntos um do outro ou com bancos de dados que sejam parte de um conjunto maior
Para evitar que hajam problemas respeito do item 2, solicito aos grupos que enviem um email para marcus.nunes@ufrn.br descrevendo o banco de dados que utilizarão. Assim, os primeiros grupos a escolherem o conjunto de análise terão preferência na escolha.
Alguns assuntos que podem ser tratados no projeto são
Comparação entre dois ou mais métodos de classificação ou regressão
Construção de um aplicativo no shiny
Demonstração de uma alguma ferramenta de machine learning não vista durante a disciplina (Deep Learning, eXtreme Gradient Boosting etc.)
Paralelização de código utilizando GPU
Reprodução de algoritmos vistos em aula em outras linguagens, como Python ou Julia, e como o desempenho deles se compara ao R
Portanto, os alunos não precisam se limitar aos conteúdos vistos em aula.
28/11/2024: entrega do pré-projeto final. No pré-projeto vão constar as seguintes informações
As apresentações ocorrerão em 19/12/2024
O material do curso foi produzido a partir de referências espalhadas por bibliotecas e pela internet. Poucas delas estão em português.