Machine Learning do Zero com Python: Da Teoria à Prática com Scikit-Learn (Exemplo com Diabetes)
🧠 Machine Learning do Zero com Python: Da Teoria à Prática com Scikit-Learn (Exemplo com Diabetes)
Introdução
A Inteligência Artificial está em todos os lugares: de recomendações da Netflix a diagnósticos médicos. Mas como essas "máquinas inteligentes" realmente aprendem? Neste artigo, você vai aprender os conceitos básicos de Machine Learning (ML) na prática, usando a linguagem Python e a biblioteca scikit-learn, com um exemplo real: a previsão de progressão da diabetes.
O que é Machine Learning?
Machine Learning (aprendizado de máquina) é um ramo da IA que permite que algoritmos aprendam padrões a partir de dados, sem serem explicitamente programados. Os principais tipos são:
- Supervisionado: aprende com dados rotulados (ex: prever o preço de uma casa).
- Não supervisionado: descobre padrões ocultos em dados não rotulados (ex: agrupamento de clientes).
- Reforço: aprende por tentativa e erro (ex: jogos e robôs).
Neste artigo, focaremos em aprendizado supervisionado com regressão linear.
Por que usar scikit-learn?
O scikit-learn
é uma das bibliotecas mais populares para ML em Python. Ela oferece:
✅ Algoritmos prontos
✅ Ferramentas de avaliação
✅ Facilidade de uso com NumPy e pandas
Mãos à obra: Previsão de Diabetes
Vamos usar um conjunto de dados real disponível no próprio scikit-learn.
1. Instalação e Importações
pip install scikit-learn matplotlib pandas
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import pandas as pd
import matplotlib.pyplot as plt
2. Carregando os dados
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target
print(diabetes.feature_names)
As features incluem idade, IMC, pressão arterial, etc. A variável y
representa uma medida da progressão da diabetes após 1 ano.
3. Separando treino e teste
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
Treino (80%): o modelo aprende.
Teste (20%): avaliamos se ele aprendeu bem.
4. Treinando o modelo
model = LinearRegression()
model.fit(X_train, y_train)
5. Avaliando o desempenho
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Erro quadrático médio (MSE): {mse:.2f}")
print(f"Coeficiente de determinação (R²): {r2:.2f}")
MSE: quanto menor, melhor.
R²: varia de 0 a 1; indica quão bem o modelo explica os dados.
6. Visualizando os resultados
plt.scatter(y_test, y_pred)
plt.xlabel("Valores Reais")
plt.ylabel("Valores Preditos")
plt.title("Previsão de Progressão da Diabetes")
plt.grid(True)
plt.show()
Conclusão
Neste artigo, você viu como:
- Entender a base do Machine Learning supervisionado;
- Usar o scikit-learn para treinar um modelo de regressão;
- Avaliar e visualizar o desempenho do modelo.
Mesmo com um modelo simples como regressão linear, é possível obter bons insights. O próximo passo seria experimentar modelos mais complexos como RandomForestRegressor
ou XGBoost
, além de melhorar os dados com engenharia de features.