สร้างฟีเจอร์
ตอนนี้พร้อมแล้วที่จะสร้างฟีเจอร์ระดับลูกค้า ได้แก่ recency, frequency, monetary value และฟีเจอร์อื่น ๆ เพื่อใช้ในโมเดล regression การทำ feature engineering ถือเป็นขั้นตอนที่สำคัญที่สุดในกระบวนการ machine learning ในแบบฝึกหัดนี้ จะสร้างฟีเจอร์ระดับลูกค้า 5 รายการ เพื่อนำไปใช้ในการพยากรณ์จำนวนธุรกรรมของลูกค้าในเดือนถัดไป ฟีเจอร์เหล่านี้สะท้อนพฤติกรรมลูกค้าที่มีพลังในการพยากรณ์สูง
ไลบรารี pandas และ numpy ถูกโหลดไว้แล้วในชื่อ pd และ np ตามลำดับ ชุดข้อมูล online_X ถูกนำเข้ามาให้แล้ว และออบเจกต์ datetime ชื่อ NOW ซึ่งแทนวันที่อ้างอิงสำหรับการคำนวณ recency ก็ถูกสร้างไว้ให้แล้วเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการตลาดด้วย Python
คำแนะนำการฝึกหัด
- คำนวณ recency โดยลบวันที่ปัจจุบันออกจาก
InvoiceDateล่าสุด - คำนวณ frequency โดยนับจำนวนใบแจ้งหนี้ที่ไม่ซ้ำกัน
- คำนวณ monetary value โดยรวมยอดค่าใช้จ่ายทั้งหมด
- คำนวณปริมาณเฉลี่ยและปริมาณรวม
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the snapshot date
NOW = dt.datetime(2011,11,1)
# Calculate recency by subtracting current date from the latest InvoiceDate
features = online_X.___('CustomerID').agg({
'InvoiceDate': lambda x: (NOW - x.max()).days,
# Calculate frequency by counting unique number of invoices
'InvoiceNo': pd.Series.___,
# Calculate monetary value by summing all spend values
'TotalSum': np.___,
# Calculate average and total quantity
'Quantity': ['___', 'sum']}).reset_index()
# Rename the columns
features.columns = ['CustomerID', 'recency', 'frequency', 'monetary', 'quantity_avg', 'quantity_total']