Transacties van klanten voorspellen

Machine Learning voor marketing in Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Modelaanpak

  • Lineaire regressie om transacties van volgende maand te voorspellen.
  • Zelfde stappen als bij logistische regressie.
Machine Learning voor marketing in Python

Modelstappen

  1. Splits data in train en test
  2. Initialiseer het model
  3. Fit het model op de trainingsdata
  4. Voorspel op de testdata
  5. Meet prestatie op testdata
Machine Learning voor marketing in Python

Regressieprestatiemetrics

Kernmetrics:

  • Root mean squared error (RMSE) - wortel van het gemiddelde gekwadrateerde verschil tussen voorspelling en werkelijkheid
  • Mean absolute error (MAE) - gemiddeld absoluut verschil tussen voorspelling en werkelijkheid
  • Mean absolute percentage error (MAPE) - gemiddeld procentueel verschil tussen voorspelling en werkelijkheid (werkelijkheden mogen geen nullen zijn)
Machine Learning voor marketing in Python

Extra metrics voor regressie en supervised learning

  • R-kwadraat: statistische maat voor het percentage verklaarde variantie door het model. Alleen bij regressie, niet bij classificatie. Hoger is beter.

  • p-waarden van coëfficiënten: kans dat de regressie- (of classificatie-)coëfficiënt toevallig wordt waargenomen. Lager is beter. Drempels: 5% en 10%.

Machine Learning voor marketing in Python

Het model fitten

# 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 voor marketing in Python

Modelprestatie meten

# 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 voor marketing in Python

Coefficienten interpreteren

  • Significantieniveau beoordelen
  • Introductie van de statsmodels-bibliotheek
  • Geeft een uitgebreid modeloverzicht
Machine Learning voor marketing in Python

Regressiemodel bouwen met 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 voor marketing in Python

Samenvattingstabel regressie

OLS-samenvatting

Machine Learning voor marketing in Python

R-kwadraat interpreteren

R-kwadraat

Machine Learning voor marketing in Python

p-waarden van coëfficiënten interpreteren

p-waarden van coëfficiënten

Machine Learning voor marketing in Python

Laten we wat regressiemodellen bouwen!

Machine Learning voor marketing in Python

Preparing Video For Download...