A combinação pandas + scikit-learn + matplotlib é o stack mais produtivo para análise de dados e machine learning em Python. De exploração inicial a modelos preditivos em produção, essas três bibliotecas cobrem o pipeline completo. Vamos construir uma análise end-to-end que vai de dados brutos a insights acionáveis.
Exploração de dados com pandas
Toda análise começa com entender os dados. df.info() mostra tipos, valores nulos e uso de memória. df.describe() calcula estatísticas descritivas (média, mediana, desvio padrão, quartis) para todas as colunas numéricas. df.value_counts() revela a distribuição de variáveis categóricas. df.isnull().sum() identifica colunas com dados faltantes. Em 5 chamadas, você tem uma radiografia completa do dataset.
A limpeza de dados consome 80% do tempo de qualquer projeto de data science. Estratégias comuns: preencher nulos com mediana (robusta a outliers) ou moda para categóricos, remover linhas com mais de 50% de valores faltantes, detectar outliers com IQR ou Z-score, normalizar formatos de data e texto, e remover duplicatas. Documente cada transformação — reprodutibilidade é essencial para quando os dados mudarem.
Visualização para insights
matplotlib é a base de visualização em Python, e seaborn adiciona gráficos estatísticos com estética profissional em uma linha de código. Histogramas revelam distribuições (sns.histplot). Scatter plots mostram relações entre variáveis (sns.scatterplot). Heatmaps de correlação identificam variáveis relacionadas (sns.heatmap(df.corr())). Box plots comparam distribuições entre grupos (sns.boxplot). Pair plots mostram relações entre todas as variáveis simultaneamente (sns.pairplot).
Para apresentações e relatórios, plotly cria gráficos interativos que o stakeholder pode explorar: hover para detalhes, zoom, filtros. Um gráfico de vendas por região onde o gerente pode clicar e drill-down para ver produtos específicos vale mais que 10 tabelas estáticas.
Machine learning com scikit-learn
O pipeline padrão de ML com scikit-learn segue etapas claras: dividir dados em treino e teste com train_test_split, criar pipelines de pré-processamento com StandardScaler para numéricas e OneHotEncoder para categóricas, escolher e treinar modelos, avaliar com métricas apropriadas, e otimizar hiperparâmetros com GridSearchCV ou RandomizedSearchCV.
Para classificação (prever uma categoria), comece com LogisticRegression como baseline — é rápido, interpretável e surpreendentemente eficaz. RandomForestClassifier e GradientBoostingClassifier geralmente oferecem melhor performance. XGBoost é o modelo que mais vence competições em dados tabulares. Para regressão (prever um valor contínuo), LinearRegression como baseline e GradientBoostingRegressor como modelo principal.
Avaliação honesta de modelos
Accuracy é uma métrica enganosa para datasets desbalanceados. Se 95% dos clientes não cancelam, um modelo que sempre prediz “não cancela” tem 95% de accuracy mas zero utilidade. Use precision e recall: precision mede a qualidade das predições positivas (dos que o modelo marcou como churn, quantos realmente são), recall mede quantos positivos reais foram capturados (dos clientes que realmente cancelaram, quantos o modelo identificou). F1-score é a média harmônica dos dois.
A matriz de confusão visualiza todos os tipos de acerto e erro. A curva ROC-AUC mostra o tradeoff entre true positive rate e false positive rate em diferentes thresholds de classificação. Cross-validation com 5-fold garante que a avaliação não depende de uma divisão sortuda dos dados.
Feature engineering: onde a mágica real acontece
Modelos de ML são tão bons quanto as features que recebem. Feature engineering transforma dados brutos em representações que os modelos conseguem aprender. Exemplos: de uma data de compra, extraia dia da semana, hora, mês, é feriado. De um histórico de transações, calcule média, frequência, recência e valor total dos últimos 30/60/90 dias. De texto livre, extraia comprimento, contagem de palavras, presença de palavras-chave específicas.
O scikit-learn oferece transformers para feature engineering: PolynomialFeatures para interações entre variáveis, KBinsDiscretizer para discretizar variáveis contínuas, e FunctionTransformer para aplicar qualquer função customizada no pipeline. Combine tudo com ColumnTransformer para aplicar transformações diferentes a colunas diferentes automaticamente — um pipeline único do dado bruto à predição que é reproduzível e deployável em produção.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.