Article image
Robson Lago
Robson Lago11/02/2025 20:15
Compartilhe

Machine Learning com Python: Um Guia Prático para Iniciantes

  • #Python

Machine Learning com Python

image

O que é Machine Learning?

Imagine um sistema que pode prever se um cliente comprará um produto apenas analisando seus hábitos de navegação. Ou um modelo que pode diagnosticar doenças a partir de imagens médicas com maior precisão do que um humano. Isso não é ficção científica – é Machine Learning! Essa tecnologia está transformando diversas indústrias, desde a saúde até o setor financeiro, permitindo que computadores aprendam padrões a partir de dados e tomem decisões inteligentes sem serem explicitamente programados.

Por que Python?

Python é a principal escolha para Machine Learning devido à sua simplicidade, versatilidade e forte suporte da comunidade. Grandes empresas como Google, Netflix e Tesla adotam Python para desenvolver modelos avançados que impulsionam inovação e eficiência. Com bibliotecas poderosas como Scikit-Learn, TensorFlow e PyTorch, a criação e o treinamento de modelos se tornaram mais acessíveis do que nunca.

A revolução do Machine Learning na indústria tem Python como protagonista. Sua sintaxe intuitiva e um ecossistema robusto de bibliotecas permitem que cientistas de dados e engenheiros desenvolvam modelos de alto desempenho rapidamente. Setores como saúde, finanças e tecnologia utilizam Python para resolver desafios complexos, desde diagnósticos médicos até detecção de fraudes.

Além disso, a integração do Python com tecnologias emergentes, como computação em nuvem e Big Data, potencializa soluções escaláveis e eficientes. O aprendizado contínuo e a otimização de modelos, por meio de técnicas como ajuste de hiperparâmetros e aprendizado profundo, ampliam suas aplicações e consolidam Python como ferramenta essencial no avanço da inteligência artificial.

Objetivo do artigo

Este artigo explora como utilizar Python para desenvolver modelos de Machine Learning, cobrindo desde a preparação dos dados até a avaliação e otimização do modelo. Além disso, criamos uma carga simples para facilitar o trabalho com os códigos apresentados.

Criação de um DataFrame (carga simples) para ser validado em machine learning.

import pandas as pd

data = {'idade': [25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 22, 28, 33, 38, 42, 48, 52, 58, 62, 68],
      'renda': [50000, 60000, 80000, 90000, 120000, 95000, 110000, 150000, 140000, 160000, 30000, 45000, 75000, 85000, 100000, 105000, 115000, 130000, 145000, 155000],
      'target': [0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1]}
df = pd.DataFrame(data)

# Salvar o DataFrame em um arquivo CSV (opcional)
df.to_csv('dados.csv', index=False)

Preparação dos Dados

Importância da Limpeza de Dados

Dados de baixa qualidade podem comprometer o desempenho de modelos de Machine Learning. Por isso, é essencial remover valores inconsistentes, lidar com dados ausentes e normalizar variáveis quando necessário.

Exemplo prático com Pandas

import pandas as pd

# Carregando os dados
df = pd.read_csv('dados.csv')

# Exibindo as primeiras linhas
print(df.head())

# Verificando valores nulos
print(df.isnull().sum())

# Preenchendo valores nulos com a média
df.fillna(df.mean(), inplace=True)

image Esse processo garante que os dados estejam prontos para análise e modelagem.

Análise Exploratória de Dados (EDA)

O que é EDA?

A Análise Exploratória de Dados (EDA) ajuda a entender padrões e tendências no conjunto de dados. Inclui técnicas como visualização de gráficos e cálculo de estatísticas descritivas.

Gráficos para análise de dados

import matplotlib.pyplot as plt
import seaborn as sns

# Histograma
sns.histplot(df['idade'], kde=True)
plt.title('Distribuição de Idade')
plt.show()

# Gráfico de dispersão
sns.scatterplot(x='idade', y='renda', data=df)
plt.title('Renda vs Idade')
plt.show()

image Os gráficos Histograma Gráfico de dispersão permitem identificar padrões e correlações entre variáveis.

Escolha do Modelo de Machine Learning

Tipos de Modelos

  • Supervisionados: Regressão e classificação. Ex: Prever se um e-mail é spam (dados rotulados).
  • Não supervisionados: Clustering e redução de dimensionalidade. Agrupar clientes com base em comportamento de compra (sem rótulos).

Exemplo prático: Classificação com Random Forest

from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# Dividindo os dados em treino e teste
X = df.drop('target', axis=1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Criando e treinando o modelo
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# Fazendo previsões
y_pred = model.predict(X_test)

# Avaliando a acurácia
print(f'Acurácia: {accuracy_score(y_test, y_pred):.2f}')

Acurácia: 0.75


Avaliação do Modelo

Principais métricas de avaliação

Além da acurácia, outras métricas importantes incluem precisão, recall e F1-score.

from sklearn.metrics import classification_report

print(classification_report(y_test, y_pred))

image

Matriz de Confusão

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

cm = confusion_matrix(y_test, y_pred)
disp = ConfusionMatrixDisplay(confusion_matrix=cm)
disp.plot(cmap='Blues')
plt.title('Matriz de Confusão')
plt.show()

image Essas métricas ajudam a compreender onde o modelo está errando.

Otimização do Modelo

Tuning de Hiper parâmetros com Grid Search

from sklearn.model_selection import GridSearchCV

param_grid = {
  'n_estimators': [50, 100, 200],
  'max_depth': [None, 10, 20],
  'min_samples_split': [2, 5, 10]
}

grid_search = GridSearchCV(model, param_grid, cv=3, scoring='accuracy')
grid_search.fit(X_train, y_train)
print(f'Melhores Parâmetros: {grid_search.best_params_}')
Melhores Parâmetros: {'max_depth': None, 'min_samples_split': 2, 'n_estimators': 100}

O ajuste de hiper parâmetros pode melhorar significativamente o desempenho do modelo.

Conclusão

Recapitulação

Neste artigo, cobrimos todas as etapas do desenvolvimento de um modelo de Machine Learning com Python, incluindo:

  • Preparação e limpeza de dados
  • Análise exploratória
  • Escolha e treinamento de um modelo
  • Avaliação e otimização

Quer aprendeer mais? Acesse: DIO | Codifique o seu futuro global agora

Visite meu Git: https://github.com/RP-Lago/ML-with-PY.git

Compartilhe
Comentários (1)
DIO Community
DIO Community - 12/02/2025 15:33

Robson, seu artigo traz um guia extremamente prático e didático para quem está começando no universo do Machine Learning com Python. Você conseguiu estruturar cada etapa do processo de maneira clara, desde a preparação e limpeza dos dados até a otimização do modelo, tornando o aprendizado mais acessível e aplicável.

A abordagem prática, com códigos bem organizados e exemplos visuais como histogramas e matrizes de confusão, facilita a compreensão e incentiva os leitores a experimentarem os conceitos diretamente no código. O uso do Random Forest como modelo de classificação também é uma excelente escolha para iniciantes, pois equilibra desempenho e interpretabilidade.

Com a crescente demanda por aplicações de Machine Learning em diversos setores, a otimização e o ajuste fino dos modelos se tornaram um diferencial competitivo. Na sua experiência, qual foi o maior desafio ao trabalhar com tuning de hiperparâmetros e quais estratégias você recomenda para quem deseja melhorar a performance dos modelos sem aumentar excessivamente a complexidade computacional?