顧客の取引を予測する

Pythonで学ぶマーケティングのための機械学習

Karolis Urbonas

Head of Analytics & Science, Amazon

モデリング手法

  • 線形回帰で翌月の取引数を予測
  • ロジスティック回帰と同じ手順
Pythonで学ぶマーケティングのための機械学習

モデリング手順

  1. データを学習用・テスト用に分割
  2. モデルを初期化
  3. 学習データで学習
  4. テストデータで予測
  5. テストデータで性能を測定
Pythonで学ぶマーケティングのための機械学習

回帰の評価指標

主要指標:

  • 2 乗平均平方根誤差 (RMSE) - 予測と実測の平方誤差の平均の平方根
  • 平均絶対誤差 (MAE) - 予測と実測の絶対誤差の平均
  • 平均絶対百分率誤差 (MAPE) - 予測と実測の百分率誤差の平均(実測は 0 不可)
Pythonで学ぶマーケティングのための機械学習

追加の回帰・教師あり学習の指標

  • R-squared - モデルが説明する分散の割合(回帰のみ、有効)。高いほど良い。

  • 係数の 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-squared の解釈

決定係数 (R-squared)

Pythonで学ぶマーケティングのための機械学習

係数の p 値の解釈

係数の p 値

Pythonで学ぶマーケティングのための機械学習

回帰モデルを作ってみましょう!

Pythonで学ぶマーケティングのための機械学習

Preparing Video For Download...