Crie seu Primeiro Modelo de ML: Guia Prático de Regressão

Vamos criar seu primeiro modelo de Machine Learning🧮 NumPy: Cálculos Científicos em Velocidade de Luz!🧮 NumPy: Cálculos Científicos em Velocidade de Luz!Aprenda a usar NumPy e acelere seus cálculos em Python com arrays otimizados, vetorização e integração com Pandas, Matplotlib e SciPy. para prever preços de imóveis! Você vai aprender todo o fluxo de um projeto real: desde análise de dados até deploy do modelo. Usaremos o dataset clássico Boston Housing com PythonO que é Python e por que utilizá-lo?O que é Python e por que utilizá-lo?Aprenda por que Python é a escolha ideal para iniciantes. Descubra sua sintaxe simples, versatilidade e forte comunidade que ajudam no seu desenvolvimento. e scikit-learn. Este tutorial é perfeito para quem está começando na área de Data Science, mas também serve como um guia prático para quem deseja consolidar conhecimentos.

Índice

1. O que é Machine Learning🧮 NumPy: Cálculos Científicos em Velocidade de Luz!🧮 NumPy: Cálculos Científicos em Velocidade de Luz!Aprenda a usar NumPy e acelere seus cálculos em Python com arrays otimizados, vetorização e integração com Pandas, Matplotlib e SciPy. e Regressão?

2. Preparando o Ambiente

3. Carregando e Explorando os Dados

4. Pré-processamento de Dados

5. Dividindo os Dados em Treino e Teste

6. Treinando o Modelo

7. Avaliando o Modelo

8. Métricas de Avaliação

9. Comparando Modelos

10. Deploy🚀 Deploy de Modelos: ML em Produção com Flask e Docker!🚀 Deploy de Modelos: ML em Produção com Flask e Docker!Aprenda a transformar seu modelo de ML em uma API robusta com Flask e Docker. Este tutorial detalha a jornada do deploy à produção com escalabilidade. Simples com Flask

11. Prevendo Preços de Casas

12. Conclusão e Próximos Passos

O que é Machine Learning e Regressão?🔗

Machine Learning🧮 NumPy: Cálculos Científicos em Velocidade de Luz!🧮 NumPy: Cálculos Científicos em Velocidade de Luz!Aprenda a usar NumPy e acelere seus cálculos em Python com arrays otimizados, vetorização e integração com Pandas, Matplotlib e SciPy. é uma área da inteligência artificial que permite que os computadores aprendam padrões a partir de dados, sem serem explicitamente programados. No nosso caso, queremos que o computador aprenda a relação entre as características de uma casa (como tamanho e número de quartos) e seu preço.

Regressão é um tipo de problema de ML onde o objetivo é prever um valor numérico contínuo. Por exemploDicionários: armazenando e acessando dados por chavesDicionários: armazenando e acessando dados por chavesAprenda a usar dicionários em Python para organizar e manipular dados com praticidade. Tutorial completo com exemplos e dicas para otimizar seu código.:

  • Prever o preço de uma casa.
  • Estimar o valor de ações.
  • Prever o tempo de entrega de um produto.

Preparando o Ambiente🔗

Antes de começar, você precisa instalar as bibliotecas necessárias. Se você já tem o PythonO que é Python e por que utilizá-lo?O que é Python e por que utilizá-lo?Aprenda por que Python é a escolha ideal para iniciantes. Descubra sua sintaxe simples, versatilidade e forte comunidade que ajudam no seu desenvolvimento. instalado, pode usar o pip para instalar:

pip install numpy pandas scikit-learn matplotlib flask

Carregando e Explorando os Dados🔗

Vamos usar o famoso dataset Boston Housing, que contém informações sobre casas em Boston. Esse dataset já vem embutido no scikit-learn.

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
# Carregar dataset
boston = load_boston()
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['PRICE'] = boston.target
# Visualizar estatísticas básicas
print(df.describe())
# Gráfico de distribuição de preços
plt.hist(df['PRICE'], bins=30)
plt.title('Distribuição de Preços das Casas')
plt.xlabel('Preço (em $1000)')
plt.ylabel('Frequência')
plt.show()
  • Principais insights:
  • A média de preços é $22,532 (em escala de $1,000)
  • A feature RM (número de quartos) tem alta correlação com o preço
  • Existem outliers na feature PTRATIO (razão aluno-professor)

Pré-processamento de Dados🔗

Antes de treinar o modelo, precisamos garantir que os dados estejam limpos e prontos para uso. Aqui estão algumas etapas comuns:

1. Verificar valores faltantes:

print(df.isnull().sum())

Se houver valores faltantes, você pode preenchê-los com a média ou mediana.

2. Normalizar os dados:

Alguns algoritmos de ML funcionam melhor com dados normalizados. Vamos usar o StandardScaler do scikit-learn:

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Separar features e target
X = df.drop('PRICE', axis=1)
y = df['PRICE']
# Dividir dados
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Normalizar dados
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
  • Por que normalizar?

Algoritmos como Regressão Linear são sensíveis à escala das features. A normalização garante que todas as variáveis tenham o mesmo peso no modelo.

Treinando o Modelo🔗

Vamos usar um modelo simples de Regressão Linear para começar. Esse modelo tenta encontrar uma relação linear entre as variáveis de entrada e o preço da casa.

from sklearn.linear_model import LinearRegression
# Criar e treinar modelo
model = LinearRegression()
model.fit(X_train, y_train)
# Fazer previsões
y_pred = model.predict(X_test)
# Coeficientes do modelo
print("Coeficiente Angular:", model.coef_)
print("Intercepto:", model.intercept_)
  • Como interpretar:

Cada coeficiente representa o impacto de uma feature no preço. Por exemploDicionários: armazenando e acessando dados por chavesDicionários: armazenando e acessando dados por chavesAprenda a usar dicionários em Python para organizar e manipular dados com praticidade. Tutorial completo com exemplos e dicas para otimizar seu código., se o coeficiente de RM é 5.2, cada quarto adicional aumenta o preço em $5,200.

Avaliando o Modelo🔗

Agora, vamos ver como o modelo se sai no conjunto de teste. Usaremos o Erro Quadrático Médio (MSE) e o Coeficiente de Determinação (R²) para medir a precisão:

from sklearn.metrics import mean_squared_error, r2_score
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Erro Quadrático Médio: {mse:.2f}")
print(f"Coeficiente de Determinação (R²): {r2:.2f}")
  • Resultado típico:
Erro Quadrático Médio: 24.29
Coeficiente de Determinação (R²): 0.67
  • O que significa:
  • MSE 24.29: O modelo erra em média $24,290
  • R² 0.67: 67% da variação nos preços é explicada pelo modelo

Comparando Modelos🔗

ModeloMAEVelocidadeInterpretabilidade
Regressão Linear3.190.67⚡⚡⚡⚡⭐⭐⭐⭐⭐
Árvore Decisão2.980.73⚡⚡⚡⭐⭐
Random Forest2.150.85⚡⚡
  • Trade-offs:

Modelos mais complexos (como Random Forest) têm melhor performance, mas são menos interpretáveis. Escolha depende do objetivo do projeto!

Deploy Simples com Flask🔗

from flask import Flask, request, jsonify
import joblib
app = Flask(__name__)
model = joblib.load('modelo.pkl')
scaler = joblib.load('scaler.pkl')
@app.route('/predict', methods=['POST'])
def predict():
    data = request.json
    scaled_data = scaler.transform([data['features']])
    prediction = model.predict(scaled_data)
    return jsonify({'previsao': prediction[0]})
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
  • Testando via cURL:
curl -X POST http://localhost:5000/predict \
  • Resposta: {"previsao":28.36} → Preço estimado de $28,360

Prevendo Preços de Casas🔗

Finalmente, vamos usar o modelo para prever o preço de novas casas. Aqui está um exemploDicionários: armazenando e acessando dados por chavesDicionários: armazenando e acessando dados por chavesAprenda a usar dicionários em Python para organizar e manipular dados com praticidade. Tutorial completo com exemplos e dicas para otimizar seu código.:

nova_casa = [[0.02731, 0.0, 7.07, 0, 0.469, 6.421, 78.9, 4.9671, 2, 242, 17.8, 396.90]]
nova_casa_scaled = scaler.transform(nova_casa)
preço_previsto = model.predict(nova_casa_scaled)
print(f"Preço previsto: ${preço_previsto[0]:.2f}")

Conclusão e Próximos Passos🔗

Você criou seu primeiro modelo de Machine Learning🧮 NumPy: Cálculos Científicos em Velocidade de Luz!🧮 NumPy: Cálculos Científicos em Velocidade de Luz!Aprenda a usar NumPy e acelere seus cálculos em Python com arrays otimizados, vetorização e integração com Pandas, Matplotlib e SciPy.! 🎉 Apesar de simples, ele já pode ser útil para prever preços de casas com base em algumas características.

O que fazer agora?

1. Experimente outros modelos: Tente usar modelos como Árvores de Decisão ou Random Forest.

2. Melhore o pré-processamento: Explore técnicas como PCA para reduzir a dimensionalidade.

3. Aprofunde-se em avaliação: Aprenda sobre métricas como R² e MAE.

4. Implemente em produção: Coloque seu modelo em um ambiente real com monitoramento contínuo.

Lembre-se: Machine Learning🧮 NumPy: Cálculos Científicos em Velocidade de Luz!🧮 NumPy: Cálculos Científicos em Velocidade de Luz!Aprenda a usar NumPy e acelere seus cálculos em Python com arrays otimizados, vetorização e integração com Pandas, Matplotlib e SciPy. é uma jornada. Continue praticando e explorando! 🚀

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados