การพยากรณ์ธุรกรรมของลูกค้า

Machine Learning สำหรับการตลาดด้วย Python

Karolis Urbonas

Head of Analytics & Science, Amazon

แนวทางการสร้างโมเดล

  • ใช้ linear regression เพื่อพยากรณ์จำนวนธุรกรรมในเดือนถัดไป
  • ขั้นตอนการสร้างโมเดลเหมือนกับ logistic regression
Machine Learning สำหรับการตลาดด้วย Python

ขั้นตอนการสร้างโมเดล

  1. แบ่งข้อมูลเป็นชุดฝึกและชุดทดสอบ
  2. กำหนดค่าเริ่มต้นโมเดล
  3. ฝึกโมเดลด้วยข้อมูลชุดฝึก
  4. พยากรณ์ค่าจากข้อมูลชุดทดสอบ
  5. วัดประสิทธิภาพโมเดลบนข้อมูลชุดทดสอบ
Machine Learning สำหรับการตลาดด้วย Python

เมตริกประสิทธิภาพสำหรับ regression

เมตริกหลัก:

  • Root mean squared error (RMSE) - รากที่สองของค่าเฉลี่ยของผลต่างยกกำลังสองระหว่างค่าพยากรณ์และค่าจริง
  • Mean absolute error (MAE) - ค่าเฉลี่ยของผลต่างสัมบูรณ์ระหว่างค่าพยากรณ์และค่าจริง
  • Mean absolute percentage error (MAPE) - ค่าเฉลี่ยของผลต่างเป็นเปอร์เซ็นต์ระหว่างค่าพยากรณ์และค่าจริง (ค่าจริงต้องไม่เป็นศูนย์)
Machine Learning สำหรับการตลาดด้วย Python

เมตริกเพิ่มเติมสำหรับ regression และ supervised learning

  • R-squared - ค่าทางสถิติที่แสดงสัดส่วนความแปรปรวนที่โมเดลอธิบายได้ ใช้ได้เฉพาะกับ regression ไม่ใช่ classification ยิ่งสูงยิ่งดี

  • p-value ของสัมประสิทธิ์ - ความน่าจะเป็นที่สัมประสิทธิ์ของ regression (หรือ classification) เกิดขึ้นโดยบังเอิญ ยิ่งต่ำยิ่งดี เกณฑ์ที่นิยมใช้คือ 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

สร้างโมเดล regression ด้วย 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

ตารางสรุปผล regression

สรุปผล OLS

Machine Learning สำหรับการตลาดด้วย Python

การแปลความหมาย R-squared

R-squared

Machine Learning สำหรับการตลาดด้วย Python

การแปลความหมาย p-value ของสัมประสิทธิ์

p-value ของสัมประสิทธิ์

Machine Learning สำหรับการตลาดด้วย Python

มาฝึกกันเถอะ!

Machine Learning สำหรับการตลาดด้วย Python

Preparing Video For Download...