Prognozowanie transakcji klientów

Uczenie maszynowe w marketingu w Pythonie

Karolis Urbonas

Head of Analytics & Science, Amazon

Podejście do modelowania

  • Regresja liniowa do prognozowania transakcji w następnym miesiącu.
  • Te same kroki modelowania co w regresji logistycznej.
Uczenie maszynowe w marketingu w Pythonie

Kroki modelowania

  1. Podział danych na zbiór treningowy i testowy
  2. Inicjalizacja modelu
  3. Dopasowanie modelu do danych treningowych
  4. Prognozowanie wartości na danych testowych
  5. Pomiar wydajności modelu na danych testowych
Uczenie maszynowe w marketingu w Pythonie

Miary wydajności regresji

Kluczowe miary:

  • Pierwiastek błędu średniokwadratowego (RMSE) – Pierwiastek ze średniej kwadratów różnic między prognozą a wartościami rzeczywistymi
  • Średni błąd bezwzględny (MAE) – Średnia bezwzględna różnica między prognozą a wartościami rzeczywistymi
  • Średni bezwzględny błąd procentowy (MAPE) – Średnia procentowa różnica między prognozą a wartościami rzeczywistymi (wartości rzeczywiste nie mogą być zerami)
Uczenie maszynowe w marketingu w Pythonie

Dodatkowe miary regresji i uczenia nadzorowanego

  • R-kwadrat – miara statystyczna określająca odsetek wariancji wyjaśnianej przez model. Dotyczy tylko regresji, nie klasyfikacji. Im wyższy, tym lepiej.

  • Wartości p współczynników – prawdopodobieństwo, że współczynnik regresji (lub klasyfikacji) wynika z przypadku. Im niższy, tym lepiej. Typowe progi to 5% i 10%.

Uczenie maszynowe w marketingu w Pythonie

Dopasowanie modelu

# 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)
Uczenie maszynowe w marketingu w Pythonie

Pomiar wydajności modelu

# 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
Uczenie maszynowe w marketingu w Pythonie

Interpretacja współczynników

  • Konieczna ocena istotności statystycznej
  • Wprowadzenie do biblioteki statsmodels
  • Szczegółowe podsumowanie modelu
Uczenie maszynowe w marketingu w Pythonie

Budowa modelu regresji w 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())
Uczenie maszynowe w marketingu w Pythonie

Tabela podsumowania regresji

Podsumowanie OLS

Uczenie maszynowe w marketingu w Pythonie

Interpretacja R-kwadrat

R-kwadrat

Uczenie maszynowe w marketingu w Pythonie

Interpretacja wartości p współczynników

Wartości p współczynników

Uczenie maszynowe w marketingu w Pythonie

Zbudujmy modele regresji!

Uczenie maszynowe w marketingu w Pythonie

Preparing Video For Download...