Pré-processamento de dados, treinamento de modelos e avaliação são etapas essenciais no pipeline de aprendizado de máquina. Scikit-learn oferece várias funções para facilitar essas etapas.
Exemplo: Pré-processamento, treinamento e avaliação de um modelo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
# Criar um DataFrame de exemplo
data = {
'idade': [25, 30, 45, 40, 50],
'renda': [20000, 30000, 50000, 40000, 60000],
'compra': [0, 0, 1, 0, 1]
}
df = pd.DataFrame(data)
# Dividir os dados em variáveis independentes e dependentes
X = df[['idade', 'renda']]
y = df['compra']
# Dividir os dados em conjuntos de treinamento e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Pré-processamento: Normalizar os dados
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Treinar um modelo de regressão logística
modelo = LogisticRegression()
modelo.fit(X_train, y_train)
# Fazer previsões
y_pred = modelo.predict(X_test)
# Avaliar o modelo
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)
class_report = classification_report(y_test, y_pred)
print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
print(f'Classification Report:\n{class_report}')