การสร้างฟังก์ชันแบ่งกลุ่มสำหรับ A/B Test
ในบทเรียนที่ผ่านมา คุณพบว่าการทดลอง personalization มีนัยสำคัญทางสถิติสูงมาก อย่างไรก็ตาม เมื่อรันการทดลอง สิ่งสำคัญคือต้องตรวจสอบว่าฟีเจอร์ใหม่ส่งผลต่อกลุ่มประชากรแต่ละกลุ่มอย่างไร เนื่องจากบางครั้งฟีเจอร์ที่ดึงดูดใจกลุ่มหนึ่งอาจไม่ได้รับความสนใจจากกลุ่มอื่น
เนื่องจากต้องการแบ่งกลุ่มข้อมูลหลายครั้ง คุณจะสร้างฟังก์ชัน ab_segmentation() เพื่อวิเคราะห์ผลกระทบของ A/B test ในแต่ละกลุ่มข้อมูล ซึ่งสามารถนำกลับมาใช้ซ้ำได้ทุกครั้งที่ต้องการวิเคราะห์แบบนี้
ฟังก์ชันนี้จะรับชื่อคอลัมน์เป็น input และวนซ้ำผ่านค่าที่ไม่ซ้ำกันแต่ละค่าในคอลัมน์นั้น เพื่อคำนวณ lift และนัยสำคัญทางสถิติ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
วิเคราะห์แคมเปญการตลาดด้วย pandas
คำแนะนำการฝึกหัด
- สร้าง for loop ภายในฟังก์ชัน
ab_segmentation()เพื่อวนซ้ำผ่านค่าที่ไม่ซ้ำกันแต่ละค่าในคอลัมน์segmentที่ผู้ใช้ระบุ - กรองแถวใน marketing ที่ช่องทางการตลาดเป็น
'Email'และคอลัมน์segmentที่ผู้ใช้ระบุมีค่าเท่ากับsubsegment - แสดงผลลัพธ์ของฟังก์ชัน
lift()และstats.ttest_ind()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def ab_segmentation(segment):
# Build a for loop for each subsegment in marketing
for subsegment in ____:
print(subsegment)
# Limit marketing to email and subsegment
email = marketing[(marketing['marketing_channel'] == ____) & (marketing[segment] == ____)]
subscribers = email.groupby(['user_id', 'variant'])['converted'].max()
subscribers = pd.DataFrame(subscribers.unstack(level=1))
control = subscribers['control'].dropna().astype(float)
personalization = subscribers['personalization'].dropna().astype(float)
print('lift:', ____)
print('t-statistic:', ____, '\n\n')