Guia Completo de Pipelines no ML.NET para Machine Learning
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!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 Python
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!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?
3. Carregando e Explorando os Dados
5. Dividindo os Dados em Treino e Teste
10. Deploy
🚀 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
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!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 exemplo
Dicioná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 Python
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
- NumPy
🧮 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 operações numéricas. - Pandas
🐼 Pandas 101: Transforme Dados em Insights!Descubra como usar o Pandas para transformar dados complexos em insights precisos. Aprenda a limpar, manipular e extrair informações estratégicas.: Para manipulação de dados. - scikit-learn: Para criar e treinar modelos de ML.
- Matplotlib
📈 Matplotlib vs Plotly: Visualização que Impacta!Explore diferenças entre Matplotlib e Plotly para visualizar dados em Python. Tutorial repleto de exemplos e dicas para escolher a ferramenta ideal.: Para visualização de dados
📈 Matplotlib vs Plotly: Visualização que Impacta!Explore diferenças entre Matplotlib e Plotly para visualizar dados em Python. Tutorial repleto de exemplos e dicas para escolher a ferramenta ideal.. - Flask
🚀 Flask vs Django: Escolha sua Arma Web!Descubra, com exemplos práticos e comparações técnicas, quando usar Flask para prototipagem ou Django para sistemas complexos e escaláveis em projetos web.: Para criar uma API simples para deploy
🚀 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. do modelo.
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 exemplo
Dicioná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🔗
| Modelo | MAE | R² | Velocidade | Interpretabilidade |
|---|---|---|---|---|
| Regressão Linear | 3.19 | 0.67 | ⚡⚡⚡⚡ | ⭐⭐⭐⭐⭐ |
| Árvore Decisão | 2.98 | 0.73 | ⚡⚡⚡ | ⭐⭐ |
| Random Forest | 2.15 | 0.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 \
- H "Content-Type: application/json
📁 Trabalhando com Arquivos: Leia, Escreva e Serialize como um Ninja!Domine as técnicas de manipulação de arquivos em Python. Aprenda a ler, escrever e serializar dados com práticas seguras e eficientes." \
- d '{"features": [0.02731, 0.0, 7.07, 0, 0.469, 6.421, 78.9, 4.9671, 2, 242, 17.8, 396.90]}'
- 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 exemplo
Dicioná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!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!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🔗
- Documentação Oficial do Python: docs.python.org/3/
- NumPy Documentation: numpy.org/doc
- Pandas Documentation: pandas.pydata.org/docs
- Python Package Index (PyPI): pypi.org
- Repositório Oficial da Linguagem Python: github.com/python/cpython
há 10 months atrás
há 8 months atrás
há 8 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 9 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás