Прогнозування транзакцій клієнтів

Machine Learning для маркетингу в Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Підхід до моделювання

  • Лінійна регресія для прогнозу транзакцій наступного місяця.
  • Ті самі кроки моделювання, як у логістичній регресії.
Machine Learning для маркетингу в Python

Кроки моделювання

  1. Розбийте дані на тренувальні та тестові
  2. Ініціалізуйте модель
  3. Навчіть модель на тренувальних даних
  4. Прогнозуйте значення на тестових даних
  5. Оцініть якість моделі на тестових даних
Machine Learning для маркетингу в Python

Метрики якості регресії

Ключові метрики:

  • Root mean squared error (RMSE) — квадратний корінь із середнього квадрата різниці між прогнозом і фактом
  • Mean absolute error (MAE) — середня абсолютна різниця між прогнозом і фактом
  • Mean absolute percentage error (MAPE) — середня відсоткова різниця між прогнозом і фактом (фактичні значення не можуть бути нулями)
Machine Learning для маркетингу в Python

Додаткові метрики регресії та навчання з учителем

  • R-squared — частка варіації, яку пояснює модель. Застосовується лише до регресії, не до класифікації. Більше — краще.

  • p-значення коефіцієнтів — ймовірність, що коефіцієнт регресії (або класифікації) спостерігається випадково. Менше — краще. Типові пороги — 5% і 10%.

Machine Learning для маркетингу в Python

Навчання моделі

# 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 для маркетингу в Python

Оцінювання якості моделі

# 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 для маркетингу в Python

Інтерпретація коефіцієнтів

  • Потрібно перевірити статистичну значущість
  • Ознайомлення з бібліотекою statsmodels
  • Надає детальний підсумок моделі
Machine Learning для маркетингу в Python

Побудова регресії зі 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 для маркетингу в Python

Підсумкова таблиця регресії

Підсумок OLS

Machine Learning для маркетингу в Python

Інтерпретація R-squared

R-squared

Machine Learning для маркетингу в Python

Інтерпретація p-значень коефіцієнтів

p-значення коефіцієнтів

Machine Learning для маркетингу в Python

Давайте побудуємо кілька регресійних моделей!

Machine Learning для маркетингу в Python

Preparing Video For Download...