Skip to content

HinePo/Trilha-de-Estudos-de-Data-Science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Trilha de Estudos de Ciência de Dados

Este é um repositório em constante construção e atualização. Adiciono aqui técnicas de estudo e fontes que considero boas para o aprendizado de ciência de dados, com o objetivo de manter recursos organizados para consulta e ajudar quem se interessa pelo tema. O conteúdo aqui compilado vai do básico ao avançado.

Todas as fontes aqui referenciadas foram vistas e curadas por mim, e este repositório também me serve como fácil retorno a bons conteúdos.

Sumário

Como estudar

  • Criar um documento (Word, Notion, Evernote etc) pessoal com a sua organização do que vc já aprendeu/estudou e o que planeja aprender/estudar, de preferência organizado por mês ou bimestre. Procurar manter este doc atualizado
  • Instalar a extensão video speed controller no google chrome (funciona em qualquer vídeo tocado pelo chrome browser), e aprender a usar
  • Sempre estude do geral para o específico: top-down learning
  • Para cada dose de teoria, uma dose de prática: problem-based learning
  • Ao entrar em um assunto novo, ver um ou dois vídeos de ~10 min no youtube, pesquisar sobre o tema focando em material escrito, e estudar aplicações
  • Evitar ficar muito tempo na parte teórica: Qualquer assunto novo tem suas aplicações via bibliotecas específicas. Se familiarizar com a documentação é o primeiro passo para aplicar o que aprendeu
  • O segundo passo é a aplicação e uso, parte prática: Resolver problemas usando IA: Pesquisar aplicações no Kaggle (notebooks), fazer o fork (Copy and Edit), adicionar ideias.
  • Evitar tentar reinventar a roda: aproveitar os códigos que já existem
  • Adicionar aplicação ao seu repositório pessoal (público ou privado - kaggle ou github) de forma organizada para que você possa facilmente consultá-la no futuro

ML twitter

  • Desde ~2020, nem os papers do arxiv e nem blogposts conseguem acompanhar a velocidade no avanço no ML/DL. As publicações acontecem de forma muito mais rápida e dinâmica no twitter, que é absolutamente fundamental pra quem quer acompanhar o estado da arte. Exemplo
  • O twitter deve ser utilizado como ferramenta de estudo e atualização. Funciona muito bem como dose diária de aprendizado, e ajuda muito a acompanhar o trabalho de outros cientistas de dados e pesquisadores.
  • Ferramenta essencial não só para o acompanhamento dos avanços na área de ciência de dados e papers publicados, mas também para a absorção de dicas e experiências compartilhadas sobre casos reais de DS na indústria e área de negócios.
  • Nenhuma outra plataforma te entrega a informação de forma tão rápida e curada.
  • Ver sugestões de perfis a seguir no final deste documento.

Ferramentas

  • Focar em Google Colab e Kaggle notebooks.
  • No futuro, é interessante conhecer IDEs como VS Code, PyCharm e Spyder.

Panorama de DS no mercado

Áreas de dados

Data fields

Data Sequence

Data sequence

DE vs ML pipelines

DE vs ML pipelines

Python and Data Analysis basics

Data Analysis workflow - entender e praticar as etapas básicas:

  • Importar e ler csv, criar dataframe
  • Checar tipos de variáveis (data types): numéricas e categóricas
  • Plots básicos
  • Analisar missing values (valores faltantes), tomar decisões sobre o que fazer com eles
  • Analisar outliers, decidir o que fazer com eles
  • Análise univariada, bivariada, multivariada (variáveis categóricas e numéricas)
  • Feature Engineering (criação de variáveis)
  • Deixar dados prontos para eventual modelagem de IA

Machine Learning workflow - entender e praticar as etapas básicas:

  • Definir Features and Target (if it is a supervised problem)
  • Preprocess: Scaling and categorical encoders
  • Check Target distributions
  • Check features distributions, normalize them if needed
  • Split train/validation datasets: Definir estratégia confiável de validação dos modelos (cross-validation strategy)
  • Definir métricas de avaliação dos modelos
  • Criar um baseline simples sem usar machine learning, e avaliar usando as métricas definidas
  • Choose algorithm, train and validate model: create simple baseline using a ML model: Lei de Gall
  • Evaluate model (fora da etapa de modelagem: cruzamento com business KPIs)
  • Melhorar baseline: criar variáveis melhores (feature engineering), tunar hiperparâmetros, testar outros algoritmos, treinar e avaliar de novo
  • Missing values & XGBoost
  • OOF analysis & Error analysis
  • Experimentos de Feature selection e preprocessing: diferentes sets de features e diferentes etapas de pré-processamento
  • Melhorar explicabilidade
  • Ensemble: combinar modelos para aumentar performance, estabilidade e poder de generalização

Data Engineering

Um pouco de Engenharia de Dados (para cientistas de dados):

Data Visualization

Machine Learning - Teoria

Machine Learning - Prática

Algorithm Optimization & Tuning techniques

Time Series

Deep Learning - Neural Networks

Principais conceitos e keywords a pesquisar e aprender: tensors, gradient descent, automatic differentiation, forward pass, backpropagation, layers, batch, epoch, iteration, optimizer step, scheduler step, vanishing gradients, exploding gradients, transfer learning (fine-tuning & feature extraction)...

Basics:

Frameworks:

Keras:

Tensorflow:

Pytorch:

Um estudo muito útil e proveitoso é comparar e olhar em paralelo as documentações de Quick Start do Keras, do Tensorflow e do Pytorch. A lógica é bem parecida e existem muitas analogias:

Principais tipos de camadas (layers):

  • Dense & Linear (fully connected)
  • Activation functions (ReLU, LeakyReLU, SELU, PReLU, Tanh, Softmax, Sigmoid....)
  • Conv (Convolutional)
  • Flatten
  • BatchNorm, LayerNorm, RMSNorm
  • LSTM (Long Short Term Memory), BiLSTM
  • GRU (Gated Recurrent Unit - Short Term Memory), BiGRU
  • Dropout
  • Pooling (Max, Mean, Average, Generalized Mean etc)
  • Concatenate

Papers - Why and When Deep Learning?

Extra:

"JAX is Autograd and XLA, brought together for high-performance numerical computing and machine learning research. It provides composable transformations of Python+NumPy programs: differentiate, vectorize, parallelize, Just-In-Time compile to GPU/TPU, and more."

"JAX is NumPy on the CPU, GPU, and TPU, with great automatic differentiation for high-performance machine learning research."

JAX é um projeto open source do Google com o objetivo de criar uma API simples e backend eficiente para cálculos de deep learning. Tem crescido em popularidade e sido considerada muito promissora por pesquisadores. Imagina-se que em alguns anos será um concorrente direto do Pytorch (na área de pesquisa), e também deverá substituir o backend do tensorflow (na área de aplicações). Há quem chame o JAX de "tensorflow 3", e já existem planos para criação de uma API high level para JAX, adaptando a biblioteca Keras para usar JAX como backend. Portanto, é interessante conhecer.

Transformers

Os Transformers e o Attention Mechanism, propostos em 2017 por Vaswani - Google Brain no paper Attention Is All You Need, são, até hoje, a maior revolução que o mundo do Deep Learning já passou. Vale a pena estudá-los com atenção (pun intended 😆), pois eles são o estado da arte em redes neurais hoje em dia para a maioria dos tasks, e pelo visto continuarão sendo por bastante tempo.

Transformers mostraram que não é preciso usar camadas LSTM para fazer tasks de NLP no estado da arte, e também não precisamos de camadas de Convolução para fazer CV (Computer Vision) no estado da arte. Attention Is All You Need.

Papers

Outras fontes

NLP - Natural Language Processing

Principais conceitos e keywords a conhecer: n-grams, CountVectorizer, TF-IDF, BOW (Bag of Words), CBOW (Continuous Bag of Words), Word2vec, FastText (facebook model), GloVe (Global Vectors), BERT, RoBERTa, Hugging Face....

Aplicações:

LLMs

Large Language Models

Conceitos básicos

LangChain - Getting Started

RAG: Retrieval Augmented Generation

Advanced RAG

Finetuning LLMs

Rag vs Finetuning

There are many ways to finetune a LLM. Some examples are: Instruction Finetuning, Preference Finetuning, Class Finetuning and Regression Finetuning.

Agents

Basics:

Langchain docs:

Hugging Face Agents

DSPy

LLMs in Production

Guardrails, Safeguards, Assertions

Outras aplicações

Computer Vision

OpenCV

Yolo

Existem várias versões do algoritmo Yolo. Vale a pena dar uma olhada nas evoluções que ocorreram desde o lançamento da versão original em 2015.

Porém, hoje em dia o pacote Ultralytics é a melhor forma de usar Yolo, e inclui várias versões e variações do Yolo e também de outros algoritmos.

Algumas funcionalidades:

  • Tasks: Detection, Segmentation, Classification e Pose Estimation
  • Modes: Train, Validate, Predict, Export, Tracking e até Benchmarking de performance

É muito importante ler toda a documentação do Ultralytics.

Aplicações:

Basics

Pytorch image models (timm)

O que o Hugging Face é para NLP é análogo ao que a biblioteca timm é para computer vision: um ecossistema open source, consolidado e no estado da arte, que disponibiliza uma API simples e unificada para uso de modelos, além de centenas de excelentes modelos multi-propósito (multi-task, general purpose models), já pré-treinados durante semanas em GPUs e TPUs de dezenas de milhares de dólares, todos prontos para usarmos apenas adicionando uma última camada na rede neural para atender ao nosso task/problema. Isso se chama feature extraction, e evita que tenhamos que treinar esses modelos gigantes from scratch.

Papers

Vision Transformer (ViT) and others

RecSys

Recommendation systems basic concepts:

Validating a recommendation model:

Common Metrics

Algumas abordagens:

Marketing Mix Modeling

Survival Analysis

Deploy

Capítulos do livro "Designing Machine Learning Systemns - Chip Huyen":

  • 7 - Model Deployment and Prediction Service
    • Offline evaluation
    • Backtesting
    • Batch x Online
    • Cloud x Edge
  • 8 - Data Distribution Shifts and Monitoring
    • How to monitor raw inputs, features, predictions, metrics
  • 9 - Continual Learning and Test in Production
    • Online evaluation
    • Shadow Deployment
    • A/B Testing
    • Canary release
    • Interleaving experiments
    • Bandits

Deploying supervised machine learning models

Deploying is an intervention and humans are agents that react to the predictions. That is the point of most models.

MLOps

Intro:

Model Store:

Websites:

Papers:

Tools & References:

Tech Management

About Pair Programming:

Para o desenvolvedor e/ou cientista de dados, a melhor forma de programar e desenvolver um projeto é via Pair Programming. E Pair Programming é melhor via trabalho remoto.

Youtube channels

Abaixo alguns canais nos quais acho válido se inscrever e acompanhar os conteúdos publicados.

Perfis no twitter

Algumas sugestões:

Releases

No releases published

Packages

No packages published