Prevendo transações de clientes

Machine Learning para Marketing em Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Abordagem de modelagem

  • Regressão linear para prever as transações do próximo mês.
  • Mesmos passos de modelagem da regressão logística.
Machine Learning para Marketing em Python

Etapas de modelagem

  1. Dividir dados em treino e teste
  2. Inicializar o modelo
  3. Ajustar o modelo nos dados de treino
  4. Prever valores nos dados de teste
  5. Medir o desempenho nos dados de teste
Machine Learning para Marketing em Python

Métricas de desempenho em regressão

Métricas principais:

  • Root mean squared error (RMSE) - Raiz da média dos quadrados das diferenças entre previsão e valores reais
  • Mean absolute error (MAE) - Média das diferenças absolutas entre previsão e valores reais
  • Mean absolute percentage error (MAPE) - Média das diferenças percentuais entre previsão e valores reais (valores reais não podem ser zero)
Machine Learning para Marketing em Python

Outras métricas de regressão e de aprendizado supervisionado

  • R-squared - medida estatística que representa a proporção percentual da variância explicada pelo modelo. Aplicável apenas a regressão, não a classificação. Quanto maior, melhor.

  • p-values dos coeficientes - probabilidade de o coeficiente de regressão (ou classificação) ser observado ao acaso. Quanto menor, melhor. Limiares típicos: 5% e 10%.

Machine Learning para Marketing em Python

Ajustando o modelo

# Import the linear regression module
from sklearn.linear_model import LinearRegression

# Initialize the regression instance linreg = LinearRegression()
# Fit model on the training data linreg.fit(train_X, train_Y)
# Predict values on both training and testing data train_pred_Y = linreg.predict(train_X) test_pred_Y = linreg.predict(test_X)
Machine Learning para Marketing em Python

Medindo o desempenho do modelo

# Import performance measurement functions
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error

# Calculate metrics for training data rmse_train = np.sqrt(mean_squared_error(train_Y, train_pred_Y)) mae_train = mean_absolute_error(train_Y, train_pred_Y)
# Calculate metrics for testing data rmse_test = np.sqrt(mean_squared_error(test_Y, test_pred_Y)) mae_test = mean_absolute_error(test_Y, test_pred_Y)
# Print performance metrics print('RMSE train: {:.3f}; RMSE test: {:.3f}\nMAE train: {:.3f}, MAE test: {:.3f}'.format( rmse_train, rmse_test, mae_train, mae_test))
RMSE train: 0.717; RMSE test: 1.216
MAE train: 0.514, MAE test: 0.555
Machine Learning para Marketing em Python

Interpretando coeficientes

  • Precisamos avaliar a significância estatística
  • Introdução à biblioteca statsmodels
  • Fornece um resumo detalhado do modelo
Machine Learning para Marketing em Python

Construindo regressão com statsmodels

# Import the library
import statsmodels.api as sm

# Convert target variable to `numpy` array train_Y = np.array(train_Y)
# Initialize and fit the model olsreg = sm.OLS(train_Y, train_X) olsreg = olsreg.fit()
# Print model summary print(olsreg.summary())
Machine Learning para Marketing em Python

Tabela de resumo da regressão

Resumo do OLS

Machine Learning para Marketing em Python

Interpretando o R-squared

R-squared

Machine Learning para Marketing em Python

Interpretando os p-values dos coeficientes

p-values dos coeficientes

Machine Learning para Marketing em Python

Vamos construir alguns modelos de regressão!

Machine Learning para Marketing em Python

Preparing Video For Download...