Aprendizados
data-science

Introdução à Ciência de Dados

Este guia de Introdução à Ciência de Dados apresenta os principais conceitos da área, incluindo o que é Ciência de Dados, diferenças entre analista, cientista e engenheiro de dados, o ciclo completo da análise de dados, fundamentos de Machine Learning e uma aplicação prática com regressão linear em Python. Ideal para iniciantes, o conteúdo aborda desde a definição do problema até a construção e avaliação de modelos preditivos, com foco em aplicações reais e aprendizado prático.

10 min de leitura
§

Introdução à Ciência de Dados

Este guia é baseado em uma oficina que ministrei sobre Ciência de Dados na semana do Amazon Hacking em 2024. O objetivo foi apresentar os principais conceitos da área de forma acessível, prática e orientada a aplicações reais. O conteúdo foi estruturado para servir como uma base para pessoas que estavam tendo seu primeiro contato com a área.

1. O que é Ciência de Dados?


De antemão, adianto que não é a fórmula para a riqueza (ao menos não depois da pandemia), tampouco o estudo de dados de tabuleiro.

Segundo a AWS, Ciência de Dados é o estudo dos dados para extrair insights significativos para os negócios.

Podemos dizer que ela é a combinação entre:

  • Matemática e estatística
  • Programação
  • Análise de dados
  • Inteligência artificial e aprendizado de máquina
  • Conhecimento de negócio

Na área de dados, é comum encontrar três papéis principais: analista, cientista e engenheiro de dados. O analista de dados é quem olha para o passado e o presente, organizando, explorando e visualizando dados para responder perguntas e gerar relatórios. O cientista de dados vai além, buscando prever cenários e gerar modelos que ajudem na tomada de decisão, utilizando estatística e machine learning. Já o engenheiro de dados atua nos bastidores, sendo responsável por coletar, processar e estruturar os dados, garantindo que estejam disponíveis, confiáveis e escaláveis para uso.

A diferença entre engenheiro e cientista de dados é uma das mais confundidas. Enquanto o cientista está preocupado em extrair valor dos dados criando modelos, testando hipóteses e gerando insights o engenheiro está focado em garantir que esses dados existam, estejam organizados e possam ser acessados com eficiência. Em outras palavras, o engenheiro constrói a infraestrutura e os pipelines; o cientista utiliza essa base para gerar inteligência. Sem engenharia, o cientista não trabalha sem ciência, os dados não geram valor.

No mundo real, a Ciência de Dados está em praticamente todo lugar: desde prever fraudes em transações bancárias, recomendar o próximo filme que você vai assistir, até estimar o preço de imóveis ou otimizar rotas de entrega. Se duvidar, até rebocar uma parede o cientista de dados sabe. Um dia está limpando dado bagunçado, no outro construindo modelo, depois criando gráfico para apresentação e até explicando resultados para quem não é técnico. No fim das contas, é justamente essa mistura de responsabilidades que faz a área ser tão interessante e tão desafiadora ao mesmo tempo.

2. Ciclo da Ciência de Dados

A Ciência de Dados não é um processo linear, mas sim um ciclo iterativo. Isso significa que, ao longo do desenvolvimento de um projeto, é comum voltar etapas, refinar hipóteses e ajustar decisões com base nos resultados obtidos.

De forma geral, esse ciclo pode ser dividido nas seguintes etapas:

Definição do Problema

Tudo começa com uma boa pergunta. Antes de qualquer código ou análise, é fundamental entender o problema que se deseja resolver. Isso envolve:

  • Formular perguntas claras e objetivas
  • Entender o contexto do negócio
  • Levantar hipóteses iniciais

Um erro comum é começar pelos dados, quando na verdade o ponto de partida deve ser o problema.

Identificação dos Dados

Com o problema definido, o próximo passo é entender quais dados são necessários para respondê-lo.

Os dados podem ser classificados como:

  • Qualitativos: descrevem características (ex: cor, categoria)
  • Quantitativos: representam valores numéricos

E ainda podem ser:

  • Nominais (sem ordem)
  • Ordinais (com ordem)
  • Discretos (valores contáveis)
  • Contínuos (valores mensuráveis)

Saber com que tipo de dado você está lidando influencia diretamente na análise e nos modelos que poderão ser utilizados.

Coleta de Dados

Aqui é onde os dados são obtidos. Eles podem vir de diferentes fontes:

  • Dados primários: pesquisas, entrevistas, formulários
  • Dados secundários: bases existentes, APIs, web scraping

Também é importante considerar onde esses dados estão armazenados:

  • Bancos de dados relacionais
  • Data warehouses
  • Data lakes
  • Planilhas e arquivos diversos

A qualidade da coleta impacta diretamente todo o restante do processo.

Processamento de Dados

Essa é uma das etapas mais importantes e muitas vezes a mais trabalhosa.

Os dados raramente vêm prontos para uso. É necessário:

  • Limpar dados (valores faltantes, duplicados, erros)
  • Padronizar formatos
  • Tratar inconsistências
  • Transformar variáveis

É aqui que você começa a “organizar a casa” antes de qualquer análise mais avançada.

Exploração de Dados

Antes de modelar qualquer coisa, é essencial entender os dados.

Isso inclui:

  • Visualização (gráficos, distribuições, padrões)
  • Estatísticas descritivas (média, mediana, desvio padrão)
  • Identificação de outliers (valores fora do padrão)

Essa etapa ajuda a validar hipóteses iniciais e descobrir insights que nem sempre estavam previstos.

Modelagem (quando aplicável)

Com os dados preparados e compreendidos, é possível aplicar modelos estatísticos ou de machine learning.

Aqui entram atividades como:

  • Escolha de algoritmos
  • Treinamento de modelos
  • Validação (treino vs teste)
  • Ajuste de parâmetros

O objetivo é gerar previsões ou automatizar decisões com base nos dados.

Interpretação e Comunicação

De nada adianta um bom modelo se ninguém entende o resultado.

Essa etapa envolve:

  • Traduzir resultados técnicos em linguagem de negócio
  • Criar visualizações claras
  • Apresentar insights acionáveis

Um bom cientista de dados não apenas analisa ele comunica.

Iteração

Raramente um projeto termina na primeira tentativa.

Com base nos resultados:

  • Novas perguntas surgem
  • Dados adicionais podem ser necessários
  • Modelos podem ser refinados

E o ciclo recomeça.

No fim das contas, a Ciência de Dados é muito menos sobre ferramentas e muito mais sobre processo. Quem domina esse ciclo consegue se adaptar a diferentes problemas, tecnologias e contextos e isso faz toda a diferença na prática.

3. Machine Learning

Machine Learning (ou Aprendizado de Máquina) é uma subárea da Inteligência Artificial focada na construção de sistemas que aprendem a partir de dados. Em vez de programarmos regras explícitas para resolver um problema, fornecemos dados e deixamos que o modelo identifique padrões e tome decisões com base neles.

De forma simples: ao invés de dizer como resolver, mostramos exemplos e deixamos o algoritmo aprender o caminho.

O que muda em relação à programação tradicional?

Na programação tradicional, o fluxo é:

Regras + Dados → Resposta

Já no Machine Learning:

Dados + Respostas → Modelo (que aprende as regras)

Isso muda completamente a forma como construímos soluções, especialmente para problemas complexos onde as regras não são tão claras como reconhecimento de imagem, linguagem natural ou previsão de comportamento.

Onde o Machine Learning é aplicado?

O ML está presente em diversas aplicações do dia a dia:

  • Sistemas de recomendação (Netflix, Spotify, e-commerce)
  • Detecção de fraudes
  • Classificação de e-mails (spam ou não)
  • Reconhecimento de imagem e voz
  • Previsão de demanda e preços
  • Diagnósticos na área da saúde

Sempre que existe dado suficiente e um padrão a ser aprendido, existe potencial para aplicar Machine Learning.

Tipos de Aprendizado

Os algoritmos de Machine Learning podem ser divididos em três grandes categorias, dependendo de como aprendem com os dados.

1. Aprendizado Supervisionado

É o tipo mais comum.

Aqui, o modelo aprende a partir de dados rotulados, ou seja, já sabemos qual é a resposta correta para cada exemplo.

Exemplo:

  • Dado um conjunto de imóveis com seus preços, o modelo aprende a prever o preço de um novo imóvel.

Principais tarefas:

Classificação
  • Saída categórica
  • Ex: spam vs não spam
Regressão
  • Saída numérica
  • Ex: prever preço, temperatura, demanda
Divisão de Dados: Treino vs Teste

Uma prática fundamental no aprendizado supervisionado é dividir os dados em dois conjuntos:

  • Treino: usado para ensinar o modelo
  • Teste: usado para avaliar o desempenho

Isso evita que o modelo apenas “decore” os dados (overfitting) e garante que ele consiga generalizar para novos casos.

2. Aprendizado Não Supervisionado

Nesse caso, os dados não possuem rótulos. O modelo precisa encontrar padrões por conta própria.

Aqui, o objetivo não é prever algo diretamente, mas entender a estrutura dos dados.

Principais abordagens:

Clusterização
  • Agrupar dados semelhantes
  • Ex: segmentação de clientes
Redução de Dimensionalidade
  • Simplificar dados mantendo o máximo de informação
  • Ex: compressão ou visualização

Esse tipo de aprendizado é muito útil em análises exploratórias.

3. Aprendizado por Reforço

Nesse modelo, um agente aprende tomando decisões em um ambiente.

Ele recebe:

  • Recompensas (quando acerta)
  • Penalidades (quando erra)

Ao longo do tempo, aprende a maximizar suas recompensas.

Exemplos:

  • Jogos (xadrez, Go)
  • Robótica
  • Sistemas de recomendação dinâmicos

Conceitos Importantes

Overfitting vs Underfitting

  • Overfitting: o modelo aprende bem demais os dados de treino e falha em generalizar
  • Underfitting: o modelo é simples demais e não consegue capturar padrões

O equilíbrio entre esses dois extremos é essencial.

Features (Variáveis)

As features são as informações usadas pelo modelo.

A qualidade das features muitas vezes importa mais do que o algoritmo em si. Existe até um ditado na área:

“Garbage in, garbage out.”

Engenharia de Features

Processo de:

  • Criar novas variáveis
  • Transformar dados existentes
  • Selecionar o que realmente importa

Essa etapa pode ser decisiva no desempenho do modelo.

Avaliação de Modelos

Algumas métricas comuns:

  • Acurácia
  • Precisão
  • Recall
  • F1-score
  • Erro médio (em regressão)

Escolher a métrica correta depende do problema.

Modelos Comuns

Alguns algoritmos bastante utilizados:

  • Regressão Linear
  • Regressão Logística
  • Árvores de decisão
  • Random Forest
  • K-Nearest Neighbors (KNN)
  • Redes neurais

Cada modelo tem seus prós e contras, e não existe um “melhor” universal — tudo depende do problema.

Quando usar Machine Learning?

Nem todo problema precisa de ML.

Use quando:

  • Existe um padrão difícil de modelar com regras fixas
  • Há uma quantidade razoável de dados
  • O problema exige previsões ou automação

Evite quando:

  • Uma regra simples resolve
  • Os dados são escassos
  • A interpretabilidade é crítica e o modelo é complexo

Machine Learning é uma ferramenta poderosa, mas não é mágica. Ele depende diretamente da qualidade dos dados, do entendimento do problema e da forma como o modelo é construído e avaliado.

No fim das contas, ML não substitui o raciocínio ele potencializa.

4. Regressão Linear

A regressão linear é um dos modelos mais simples e ao mesmo tempo mais importantes dentro do Machine Learning. Ela é frequentemente o primeiro contato prático de quem está começando na área, justamente por ser fácil de entender e bastante interpretável.

O objetivo da regressão linear é encontrar uma relação entre variáveis para prever um valor numérico. Em outras palavras, ela tenta responder perguntas do tipo:

  • “Qual será o preço de um imóvel com base em suas características?”
  • “Qual será a demanda de um produto no próximo mês?”

Intuição por trás do modelo

A ideia central é simples: encontrar uma linha (ou reta) que melhor represente a relação entre os dados.

y=β0​+β1​x
  • y → variável que queremos prever
  • x → variável de entrada
  • β₀ → intercepto (onde a linha cruza o eixo y)
  • β₁ → inclinação da reta (o quanto y varia com x)

O modelo basicamente tenta ajustar essa linha da melhor forma possível aos dados observados.

Como o modelo aprende?

A regressão linear encontra a melhor reta minimizando o erro entre os valores reais e os valores previstos.

Esse erro é conhecido como resíduo.

erro = y - ŷ

O método mais comum para isso é o mínimos quadrados, que busca minimizar a soma dos erros ao quadrado.

Premissas da Regressão Linear

Para que o modelo funcione bem, algumas premissas são importantes:

  • Relação linear entre variáveis
  • Independência dos erros
  • Homocedasticidade (variância constante dos erros)
  • Baixa multicolinearidade entre variáveis

Na prática, essas condições nem sempre são perfeitas mas servem como guia.

Vantagens

  • Simples de entender e implementar
  • Alta interpretabilidade
  • Rápido de treinar
  • Ótimo ponto de partida

Limitações

  • Não captura relações não lineares
  • Sensível a outliers
  • Pode ter desempenho limitado em problemas complexos

Quando usar?

A regressão linear é uma excelente escolha quando:

  • Existe uma relação aproximadamente linear
  • A interpretabilidade é importante
  • Você quer um baseline rápido

Apesar de simples, a regressão linear ensina conceitos fundamentais que aparecem em praticamente todos os modelos mais avançados. Dominar esse modelo não é só sobre saber usá-lo, mas entender a base de como máquinas aprendem a partir de dados.

5. Parte Prática

Importando Bibliotecas

datascience.ipynb
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error

Importamos as principais bibliotecas para manipulação de dados e visualização, bem como as ferramentas de Machine Learning que vamos usar no modelo.

Importando os Dados

datascience.ipynb
!kaggle datasets download -d tawfikelmetwally/chicago-house-price
!unzip /content/chicago-house-price.zip
df = pd.read_csv('./realest.csv')
df.head()