Förutsäga kundtransaktioner

Maskininlärning för marknadsföring i Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Modelleringsmetod

  • Linjär regression för att förutsäga nästa månads transaktioner.
  • Samma modelleringssteg som med logistisk regression.
Maskininlärning för marknadsföring i Python

Modelleringssteg

  1. Dela upp data i tränings- och testmängd
  2. Initiera modellen
  3. Träna modellen på träningsdata
  4. Förutsäg värden på testdata
  5. Mät modellens prestanda på testdata
Maskininlärning för marknadsföring i Python

Prestandamätvärden för regression

Viktiga mätvärden:

  • Rotmedelkvadratfel (RMSE) – Kvadratroten ur det genomsnittliga kvadratiska avvikelsen mellan förutsägelse och faktiska värden
  • Medelabsolutfel (MAE) – Genomsnittlig absolutavvikelse mellan förutsägelse och faktiska värden
  • Medelabsolutprocentfel (MAPE) – Genomsnittlig procentuell avvikelse mellan förutsägelse och faktiska värden (faktiska värden får inte vara noll)
Maskininlärning för marknadsföring i Python

Ytterligare mätvärden för regression och övervakad inlärning

  • R-kvadrat – statistiskt mått som anger hur stor andel av variansen som förklaras av modellen. Gäller enbart regression, inte klassificering. Högre är bättre.

  • p-värden för koefficienter – sannolikheten att regressions- (eller klassificerings-) koefficienten observeras av en slump. Lägre är bättre. Vanliga gränsvärden är 5 % och 10 %.

Maskininlärning för marknadsföring i Python

Träna modellen

# 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)
Maskininlärning för marknadsföring i Python

Mäta modellens prestanda

# 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
Maskininlärning för marknadsföring i Python

Tolka koefficienter

  • Behöver bedöma statistisk signifikans
  • Introduktion till biblioteket statsmodels
  • Ger en detaljerad modellsammanfattning
Maskininlärning för marknadsföring i Python

Bygg regressionsmodell med 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())
Maskininlärning för marknadsföring i Python

Regressionssammanfattningstabell

OLS-sammanfattning

Maskininlärning för marknadsföring i Python

Tolka R-kvadrat

R-kvadrat

Maskininlärning för marknadsföring i Python

Tolka p-värden för koefficienter

P-värden för koefficienter

Maskininlärning för marknadsföring i Python

Nu kör vi en övning!

Maskininlärning för marknadsföring i Python

Preparing Video For Download...