Mentorando iniciantes em carreiras de Data Science

This page is a resource for mentors, offering a structured curriculum to guide beginners through their data science journey. It provides mentors with a clear roadmap and curated materials to effectively support their mentees in building foundational skills and advancing in the field.

If you’re curious, consider using your browser to translate this page from Portuguese to English and explore the content!


Essa página sugere um roteiro de estudos em Ciência de Dados com foco em Aprendizado de Máquina. Ela abrange vários assuntos básicos e sugere continuações de estudo ou áreas de especialização que o mentorado pode escolher ao final.

Dependendo do nível técnico do mentorado no início da mentoria, várias etapas podem ser puladas. De forma geral, as atividades roteirizadas neste guia supõem um conhecimento equivalente ao ciclo básico de graduação em cursos da área de exatas, o qual detalharei com mais cuidado a seguir, dando ainda alternativas de cursos para quando esse pré-requisito não se aplica.

$\oint$ Os materiais apresentados aqui foram selecionados com grande intersecção com os recursos que utilizei durante minha preparação para ingressar no mercado de ciência de dados. Posteriormente, muitos desses materiais foram empregados em mentorias que conduzi com profissionais em início de carreira.

Pré-requisitos esperados do mentorado

Em uma conversa com o mentorado, é importante perceber se ele possui os pré-requisitos para seguir a sugestão de tópicos ou não. Caso contrário, diversas adaptações precisam ser feitas, principalmente no início, e já forneço algumas sugestões nesta seção.

Ensinamentos do HDFS: redundância é importante

Durante este guia de materiais de mentoria, ao selecionar partes específicas de cursos diferentes, vários assuntos podem ser abordados repetidamente, mas com uma abordagem ligeiramente diferente. Isso é intencional. Acredito que, para fortalecer essa base da forma mais robusta possível, é importante que os assuntos sejam realmente absorvidos, e revê-los algumas vezes ajuda a reforçar esse aprendizado. :)

0) Como usar esse guia de atividades de tutoria?

Logo abaixo do título da atividade, há uma breve motivação. Ela serve para que o tutor entenda por que aquela atividade faz sentido naquele momento (e pode ser compartilhada com o mentorado, caso o tutor julgue importante explicar a tarefa).

0.1) Requisitos sugeridos

Os pré-requisitos servem para indicar as dependências sugeridas entre as atividades, caso se deseje seguir uma ordem diferente ou pular etapas.

0.2) Descrição

A descrição é o texto sugerido para ser passado ao aluno na ferramenta utilizada para registrar as atividades. Recomendo o uso do Trello, uma ferramenta com estrutura no estilo Kanban, onde é possível organizar os cards em colunas (como “To Do”, “In Progress” e “Done”). Essa estrutura é bastante semelhante à forma como ferramentas de organização de tarefas são utilizadas em muitas equipes de dados que empregam o Agile (ou alguma variação dele).

É aqui que o link para o material de estudo deve ser disponibilizado. De forma geral, as recomendações oferecem o conteúdo de forma gratuita, e os materiais estão majoritariamente em inglês, com alguns tópicos em português. Caso algum link esteja quebrado, por favor, entre em contato comigo para que eu possa verificar e corrigir. :)

Cronograma

Concluída essa etapa de atividades, a sugestão é realizar algum desafio no Kaggle, levando em consideração o tempo restante da tutoria (considerando uma duração aproximada de 6 meses). Nesse momento, é importante compreender o problema de forma detalhada, e pode ser útil trabalhar em “releases”, em que, a cada x semanas, uma versão mais estruturada do modelo seja desenvolvida, incluindo novos testes.

Obviamente, essas atividades não estão gravadas em pedra e podem ser ajustadas conforme o interesse do tutorado. Por exemplo, um tutorado mais próximo da área de saúde pode ter interesse em redes neurais para imagens, por exemplo, o que tornaria relevante a substituição de algumas atividades, especialmente nas semanas finais.

Atividades recorrentes

As atividades recorrentes não são realizadas pontualmente nem finalizadas em sequência. São atividades que, uma vez atendidos os requisitos para sua execução, devem ser realizadas de forma contínua ao longo das semanas da tutoria.

A) HackerRank

O HackerRank oferece diversas playlists interessantes que ensinam, por meio de exercícios, particularidades do Python. Você terá a oportunidade de conhecer estruturas de dados não triviais enquanto revisita as que já domina, aprendendo novas maneiras de trabalhar com elas. Ferramentas como essa são frequentemente utilizadas em processos seletivos, principalmente para posições mais ligadas à Engenharia de Software, como a de Machine Learning Engineer.

A.1) Requisitos Sugeridos

Atividade 2.

A.2) Descrição

Dedicar pelo menos 1 hora por semana às atividades propostas nas playlists de Python do HackerRank. Com pouco tempo de prática, você terá explorado a maioria dos tipos de estruturas relevantes, o que ajudará a tornar seu código mais pythonic.

B) Stratascratch

Pandas é a principal biblioteca de manipulação de dados do Python. Aliada ao SQL, será a principal ferramenta para tratar dados no dia a dia da ciência de dados. Você só dominará a sintaxe do Pandas se utilizá-lo de forma recorrente. A ideia aqui é apresentar alguns exercícios, mais ou menos clássicos, para se familiarizar com as manipulações principais.

B.1) Requisitos sugeridos

Atividade 12.

B.2) Descrição

Realizar pelo menos 30 minutos de atividades propostas utilizando o Pandas do Stratascratch toda semana. Você também pode resolvê-las em SQL, o que pode ser útil para treinar essa ferramenta eventualmente.

Atividades Sequenciais

Sequência idealizada de atividades para o ciclo de estudos da mentoria.

1) Instalar Python (pelo Anaconda)

A ideia é preparar o ambiente para utilizar Jupyter Notebooks. Essas são ferramentas excelentes para exploração e, na prática, representam o ambiente mais adotado no dia a dia do cientista de dados para prototipação de código. Durante os encontros, é sempre útil apresentar os atalhos mais comuns e boas práticas, como deixar o notebook preparado para um “restart and run all” com resultados reproduzíveis (utilizando random states fixados). No entanto, abordar tudo isso agora pode acabar confundindo o mentorando. Eventualmente, ao final, podemos introduzir outras ferramentas, como IDEs, incluindo o VSCode, mas acredito que isso não seja útil no início.

1.1) Requisitos sugeridos

Não há.

1.2) Descrição

2) Aula introdutória da especialização (básica) de ML do Andrew

Aqui, o didático Andrew apresenta os tipos de aprendizado e oferece exemplos interessantes. É uma ótima oportunidade para pedir ao mentorando que sugira exemplos de problemas onde esses conceitos podem ser aplicados, além de motivar discussões sobre aplicações menos triviais.

2.1) Requisitos sugeridos

Não há.

2.2) Descrição

3) Nivelamento Python (Kaggle Learn)

Python é A LINGUAGEM para Ciência de Dados: ela conta com muitas bibliotecas de alta qualidade já disponíveis e é amplamente adotada como padrão na esteira de produtização pelas empresas. O curso do Kaggle Learn é excelente porque foca nas partes mais úteis, especialmente considerando as principais bibliotecas de Aprendizado de Máquina. É um curso direcionado para quem está migrando de outra linguagem, ou seja, já parte do pressuposto de que o aluno tem conhecimento básico de lógica de programação.

3.1) Requisitos sugeridos

Atividade 1. Já assume conhecimento de programação básico em alguma linguagem.

3.2) Descrição

4) Aula de Regressão Linear da especialização (básica) de ML do Andrew

A Regressão Linear é um dos algoritmos mais simples de Aprendizado de Máquina, sendo o terreno ideal para introduzir as principais ideias do aprendizado supervisionado, além de apresentar nomenclaturas e desenvolver a intuição. É essencial que essa atividade seja realizada com muita atenção e cuidado.

O curso do Andrew Ng inclui alguns notebooks auxiliares que podem ser interessantes de explorar, dependendo do perfil do mentorado. No entanto, eu, pessoalmente, não os considero indispensáveis, pois as aulas são bastante visuais e já explicam bem os conceitos apresentados. Se for necessário, você pode baixar os notebooks em um repositório como este: Machine-Learning-Specialization-Coursera. Caso esse repositório fique indisponível, será relativamente fácil encontrar outros semelhantes pesquisando no Google.

4.1) Requisitos sugeridos

Atividade 2.

4.2) Descrição

5) Introdução ao NumPy

NumPy é a principal ferramenta para manipulação de vetores e matrizes no Python, servindo como base para praticamente todas as outras bibliotecas importantes de Aprendizado de Máquina. Inicialmente, é fundamental compreender o básico dessa biblioteca e, com o tempo, buscar uma compreensão mais aprofundada para dominá-la.

5.1) Requisitos sugeridos

Atividade 3.

5.2) Descrição

6) Implementing from ground up: Regressão Linear Simples

Essa atividade serve como uma oportunidade para praticar e consolidar tudo o que foi aprendido até agora.

6.1) Requisitos sugeridos

Atividades 4 e 5.

6.3) Descrição

7) Curso de básico de ML do Kaggle Learn

Exceto por problemas específicos, o dia a dia do cientista de dados não envolve criar modelos do zero. O scikit-learn é uma das bibliotecas mais robustas e amplamente utilizadas, com dezenas de modelos pré-construídos que seguem os melhores padrões de desenvolvimento de software. Além disso, conta com uma comunidade Open Source incrível que fornece suporte e orienta a evolução da biblioteca.

Este curso do Kaggle serve como uma introdução ao scikit-learn, sendo uma excelente oportunidade para aprender o padrão fit/predict, amplamente estabelecido e utilizado no campo de Aprendizado de Máquina.

7.1) Requisitos sugeridos

Atividades 4 e 5.

7.2) Descrição

8) Introdução à Programação Orientada a Objetos (POO)

A orientação a objetos é o paradigma de programação principal do Python. A forma de abstração que ele nos oferece é muito poderosa, permitindo a construção de códigos complexos de maneira estruturada e reaproveitável, além de facilitar a manutenção. O objetivo desta atividade não é se tornar um mestre em POO, mas ter uma visão geral para saber que ela existe e compreender como o scikit-learn e outras bibliotecas do Python a utilizam. No futuro (provavelmente fora do escopo desta mentoria básica inicial), esse tópico pode ser revisitado, aprofundando-se no uso de heranças e boas práticas, como os princípios SOLID e os design patterns.

8.1) Requisitos sugeridos

Atividade 7.

8.2) Descrição

9) Aula de Regressão Linear Multivariada (e polinomial) da especialização (básica) de ML do Andrew

Na vida real, utilizamos dezenas, centenas ou até milhares de variáveis para realizar nossas previsões, e não apenas uma, como na regressão linear simples. Embora ainda seja um algoritmo relativamente simples, generalizar o caso da regressão linear simples já nos dá uma ideia de onde queremos chegar eventualmente. Além disso, nesta aula, o Andrew explica o conceito de vetorização de código (evite usar loops for!).

9.1) Requisitos sugeridos

Atividade 4.

9.2) Descrição

Em particular, nessa atividade, pode ser necessário revisar operações matriciais. Um material rápido e direto ao ponto para isso pode ser algumas das aulas da versão anterior desse curso:

Se quiser saber mais sobre o que Andrew chama de “normal equation”, que nada mais é do que a solução analítica dos pesos na regressão linear (em contraste com o método numérico iterativo aproximado fornecido pelo gradiente descendente):

10) Implementing from ground up: Regressão Polinomial + POO

A estrutura orientada a objetos do scikit-learn precisa se tornar sua aliada. O objetivo desta atividade é explorar um pouco a “caixa preta” dos estimadores do scikit-learn, implementando do zero o caso particular de regressão multivariada (quando as dimensões extras correspondem a potências da primeira componente, como Andrew explica em um dos vídeos da atividade 9).

A ideia aqui é se familiarizar um pouco mais com a forma como o scikit-learn funciona, praticando POO.

10.1) Requisitos sugeridos

Atividades 4, 8 e 9.

10.2) Descrição

O objetivo desta atividade é estruturar, de forma mais elegante, o que você desenvolveu na atividade 8, encapsulando o código em uma classe no formato dos estimadores apresentados no curso do Kaggle sobre scikit-learn. Idealmente, boa parte do código anterior será reaproveitada nesta atividade.

11) Validação de modelos de regressão

Em relação à atividade prática, é de nosso interesse determinar, por exemplo, qual o melhor valor de degree a ser utilizado em um modelo. Para avaliar o desempenho do modelo e definir o que significa ser “melhor” ou “pior”, assim como no caso da regressão linear, precisamos estabelecer uma métrica de avaliação. Nesta atividade, exploraremos algumas métricas além da “mean squared error” e aplicaremos essa ideia na atividade anterior.

11.1) Requisitos sugeridos

Atividade 10.

11.2) Descrição

Métricas de Regressão

Obs: Os vídeos desta seção estão hospedados em uma plataforma de compartilhamento de vídeos asiática, pois os originais, que estavam no Coursera, tornaram-se indisponíveis devido às sanções aplicadas à Rússia pela guerra na Ucrânia. No Coursera, os cursos originados de universidades russas foram desativados.

No curso introdutório de Aprendizado de Máquina do Kaggle Learn, que você realizou, foram apresentadas ideias iniciais sobre validação de modelo utilizando um conjunto de validação (hold-out). Um exercício interessante é aplicar essa mesma ideia à atividade anterior (10), separando o conjunto de dados em uma parte para treino e outra para teste.

Mais adiante, discutiremos com mais profundidade os conceitos de viés/variância e underfitting/overfitting. Por ora, tente refletir sobre o que acontece com o modelo polinomial ao alterar o valor de degree. Para quais valores de degree ocorre underfitting? E para quais valores ocorre overfitting?

12) Introdução ao Pandas

O Pandas é a biblioteca de manipulação de dados mais amplamente utilizada para estruturar seus dados em Python. Aliada ao Spark e ao SQL, ela compõe um stack extremamente robusto para diferentes tarefas e cenários de manipulação de dados. O Pandas é, talvez, a mais natural para aprender quando se está estudando Python, e dominá-la facilitará o aprendizado das outras ferramentas.

12.1) Requisitos sugeridos

Atividade 5.

12.2) Descrição

Algumas referências. Caso ache que estão muito redundantes, sinta-se à vontade para pular algumas delas.

13) Aula de Regressão Logística da especialização (básica) de ML do Andrew

A regressão logística é uma generalização natural da regressão linear para o caso de classificação binária, em que, por construção, espera-se que o output do modelo seja um valor entre 0 e 1, com interpretação como a probabilidade de uma das classes. Nesta aula do Andrew, são abordados alguns tópicos adicionais, como underfitting, overfitting e regularização.

13.1) Requisitos sugeridos

Atividade 11.

13.2) Motivação

Vale dar uma olhada rápida na ideia de generalização para o caso multiclasse:

14) Métricas de classificação

Assim como no caso da regressão, existem diversas maneiras de avaliar a qualidade de um modelo em problemas de classificação.

14.1) Requisitos sugeridos

Atividade 13.

14.2) Descrição

Obs: Os vídeos desta seção estão hospedados em uma plataforma de compartilhamento de vídeos asiática, pois os originais, que estavam no Coursera, tornaram-se indisponíveis devido às sanções aplicadas à Rússia pela guerra na Ucrânia. No Coursera, os cursos originados de universidades russas foram desativados.

15) Árvores de Decisão e Regressão

Algoritmos baseados em árvores estão entre os mais utilizados, de maneira geral, para trabalhar com dados tabulares. Compreender bem o caso básico é essencial para entender as formas mais robustas de utilizá-los, especialmente quando empregamos comitês.

15.1) Requisitos sugeridos

Atividade 14.

15.2) Descrição

16) Random Forest

As Random Forests são um poderoso exemplo de comitês baseados em árvores de decisão, projetados para aumentar a precisão e a robustez dos modelos. Compreender suas ideias centrais, como bootstrapping, o erro fora da amostra (OOB) e a importância das variáveis, é essencial para explorar seu potencial em dados tabulares.

16.1) Requisitos sugeridos

Atividade 15.

16.2) Descrição

17) Análise Exploratória de Dados

Na prática, antes da modelagem, é muito importante entender quais variáveis o cientista tem disponíveis para a criação do modelo. Nem sempre o problema está bem definido, e a delimitação do que se deseja modelar (e quais métricas otimizar) pode surgir de um bom entendimento dos dados disponíveis, em conjunto com alinhamentos com a área de negócios interessada.

Opinião pessoal (também conhecido como desabafo):

17.1) Requisitos sugeridos

Atividades 12.

17.2) Descrição

Extras:

18) Kaggle Challenge

Neste ponto, o mentorado já adquiriu o conhecimento necessário para realizar um ciclo completo de machine learning: desde a escolha de um dataset até a aplicação de um modelo, passando pela limpeza dos dados e avaliação dos resultados. Este desafio no Kaggle oferece uma oportunidade prática para consolidar e aplicar os aprendizados em um cenário prático.

18.1) Requisitos sugeridos

Atividades 16 e 17.

18.2) Descrição

Escolher um dataset do Kaggle e limpar os dados + aplicar um modelo de ML, avaliando os resultados (qual métrica utilizar pensando no problema que estou preocupado em resolver?)

19) Aula sobre dicas práticas da especialização (básica) de ML do Andrew

Esta atividade oferece uma visão prática e estratégica do ciclo de vida completo de um modelo de machine learning supervisionado, com foco em validação, análise de erros e iteração. Além disso, aborda tópicos fundamentais como MLOps e ética, ajudando o mentorado a conectar teoria e prática de forma holística.

19.1) Requisitos sugeridos

Atividade 18.

19.2) Descrição

Infelizmente, a partir do segundo curso do Andrew, é necessário se inscrever pelo Coursera porque os vídeos não estão disponíveis no YouTube. Não se preocupe, o conteúdo continua gratuito se você se inscrever como ouvinte.

20) Aula de árvores de decisão da especialização (básica) de ML do Andrew

As árvores de decisão são modelos fundamentais para resolver problemas tanto de classificação quanto de regressão, servindo de base para técnicas mais avançadas como Random Forests e XGBoost. Esta aula do Andrew Ng aprofunda os conceitos de aprendizado, medição de pureza e seleção de divisões, consolidando uma compreensão sólida do funcionamento e aplicações desse tipo de modelo.

20.1) Requisitos sugeridos

Atividade 19.

20.2) Descrição

Infelizmente, a partir do segundo curso do Andrew, é necessário se inscrever pelo Coursera porque os vídeos não estão disponíveis no YouTube. Não se preocupe, o conteúdo continua gratuíto se você se inscrever como ouvinte.

21) Curso de intermediário de ML do Kaggle Learn

O curso intermediário de Machine Learning do Kaggle é uma oportunidade de aprofundar conceitos essenciais, como imputação de valores ausentes, validação e ajuste de modelos. Além disso, a inclusão de referências sobre validação out-of-time e out-of-space ajuda a explorar técnicas avançadas para avaliar modelos em cenários mais desafiadores e próximos da realidade.

21.1) Requisitos sugeridos

Atividade 20.

21.2) Descrição

22) Otimização de hiperparâmetros

A otimização de hiperparâmetros é uma etapa crucial para maximizar o desempenho dos modelos de machine learning. Esta atividade apresenta as principais abordagens, como Grid Search e alternativas mais eficientes, ajudando o mentorado a compreender quando e como ajustar hiperparâmetros de maneira estratégica para diferentes tipos de problemas.

22.1) Requisitos sugeridos

Atividade 21.

22.2) Descrição

23) Curso de feature engineering do Kaggle Learn

O feature engineering é uma etapa essencial para aumentar a qualidade e o desempenho dos modelos de machine learning, permitindo extrair o máximo de informações úteis dos dados. Este curso do Kaggle Learn e as referências complementares ajudam o mentorado a dominar técnicas como encoding, manipulação de datas e criação de variáveis mais informativas, consolidando uma base sólida para modelagem avançada.

23.1) Requisitos sugeridos

Atividade 21.

23.2) Descrição

24) Curso de explicabilidade do Kaggle Learn

Explicabilidade em machine learning é fundamental para entender como os modelos tomam decisões, aumentando a confiança e a transparência em suas previsões. Este curso do Kaggle Learn explora ferramentas como SHAP values, permitindo que o mentorado interprete modelos complexos e identifique os fatores mais relevantes na tomada de decisão, com aplicações práticas e acessíveis.

24.1) Requisitos sugeridos

Atividade 21.

24.2) Descrição

25) Curso de ética do Kaggle Learn

A ética em IA é essencial para desenvolver soluções responsáveis, justas e alinhadas com os valores sociais.

25.1) Requisitos sugeridos

Atividade 21.

25.2) Descrição

26) Aula aprendizado não supervisionado da especialização (básica) de ML do Andrew

O aprendizado não supervisionado é uma abordagem poderosa para descobrir padrões ocultos e identificar anomalias em dados sem rótulos. Esta aula do Andrew Ng apresenta fundamentos como clustering com K-means e detecção de anomalias, permitindo ao mentorado explorar aplicações práticas dessas técnicas.

26.1) Requisitos sugeridos

Atividade 21.

26.2) Descrição

Infelizmente, a partir do segundo curso do Andrew, é necessário se inscrever pelo Coursera porque os vídeos não estão disponíveis no YouTube. Não se preocupe, o conteúdo continua gratuíto se você se inscrever como ouvinte.

27) Algoritmos baseados em distância

Algoritmos baseados em distância, como KNN e K-Means, utilizam medidas de similaridade geométrica para classificação, regressão e clustering. Compreender esses métodos é essencial para explorar técnicas simples e eficazes em aprendizado de máquina.

27.1) Requisitos sugeridos

Atividade 26.

27.2) Descrição

28) Introdução a Version Control System (Git/GitHub)

O Git é uma ferramenta essencial para controle de versão, permitindo que você acompanhe e gerencie alterações em seu código de forma eficiente e segura. Ele é amplamente utilizado em projetos de software para colaborar em equipes, revisar mudanças e integrar diferentes partes de um projeto sem conflitos.

O GitHub, por sua vez, é uma plataforma que aproveita o poder do Git, oferecendo recursos adicionais como hospedagem de repositórios, integração contínua, controle de acesso e colaboração em projetos. Dominar essas ferramentas não é apenas importante para gerenciar seus próprios projetos, mas também essencial para trabalhar em equipes modernas, onde o versionamento e a rastreabilidade são cruciais para a produtividade e qualidade do trabalho.

28.1) Requisitos sugeridos

Não há.

28.2) Descrição

Discussões extras e alguns tópicos de estudo individual pós tutoria

Essa é uma lista (não exaustiva) de temas interessantes que podem ser usados para se aprofundar (para mentorados que já estão mais avançados) após o ciclo idealizado. Aqui a escolha deve ser do mentorado sobre os assuntos pensando também no tempo restante e na relevância dos assuntos.

SQL

Provavelmente o assunto mais importante que ficou faltando no currículo inicial da tutoria. Vale a pena ter um nível básico de SQL para aplicar para vagas.

Algoritmos Clássicos de ML que não foram vistos anteriormente, mas são importantes

eXplainable AI

GenAI

Cursos de Aprendizado de Máquina com um pouco mais de rigor

Boosting Trees

MLOps

Fairness

Redes Neurais (Deep Learning)

Shallow NLP

Sistemas de Recomendação (RecSys)

Aprendizado por Reforço

Séries temporais com Aprendizado de Máquina

Robustez de Modelo

Inferência Causal

Feature Selection

Python

Conformal Prediction

Análise de Sobrevivência

Calibração de Probabilidade

Aprendizado Semissupervisionado

Inferência de Rejeitados

Problem Solving

Online Learning

Quantum Machine Learning

Análise de Algoritmos

Open Source

Discussões sobre gestão em DS

As linhas horizontais desse site foram feitos no Silk.