Прогнозирование транзакций клиентов

Машинное обучение для маркетинга на Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Подход к моделированию

  • Линейная регрессия для прогноза транзакций на следующий месяц.
  • Те же шаги моделирования, что и при логистической регрессии.
Машинное обучение для маркетинга на Python

Шаги моделирования

  1. Разделите данные на обучающую и тестовую выборки
  2. Инициализируйте модель
  3. Обучите модель на обучающих данных
  4. Получите предсказания на тестовых данных
  5. Оцените качество модели на тестовых данных
Машинное обучение для маркетинга на Python

Метрики качества регрессии

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

  • Среднеквадратичная ошибка (RMSE) — квадратный корень из среднего квадрата отклонений предсказаний от фактических значений
  • Средняя абсолютная ошибка (MAE) — среднее абсолютное отклонение предсказаний от фактических значений
  • Средняя абсолютная процентная ошибка (MAPE) — среднее процентное отклонение предсказаний от фактических значений (фактические значения не могут быть равны нулю)
Машинное обучение для маркетинга на Python

Дополнительные метрики регрессии и обучения с учителем

  • R-квадрат — статистическая мера, показывающая долю дисперсии, объяснённой моделью. Применяется только к регрессии, не к классификации. Чем выше — тем лучше.

  • P-значения коэффициентов — вероятность того, что коэффициент регрессии (или классификации) получен случайно. Чем ниже — тем лучше. Типичные пороговые значения: 5% и 10%.

Машинное обучение для маркетинга на 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)
Машинное обучение для маркетинга на 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
Машинное обучение для маркетинга на Python

Интерпретация коэффициентов

  • Необходимо оценить статистическую значимость
  • Знакомство с библиотекой statsmodels
  • Даёт подробную сводку по модели
Машинное обучение для маркетинга на 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())
Машинное обучение для маркетинга на Python

Сводная таблица регрессии

Сводка OLS

Машинное обучение для маркетинга на Python

Интерпретация R-квадрата

R-квадрат

Машинное обучение для маркетинга на Python

Интерпретация p-значений коэффициентов

P-значения коэффициентов

Машинное обучение для маркетинга на Python

Давайте потренируемся!

Машинное обучение для маркетинга на Python

Preparing Video For Download...