A/B टेस्ट के लिए एक सेगमेंटिंग फंक्शन बनाना
पिछले लेसन में, आपने देखा कि आपका personalization एक्सपेरिमेंट सांख्यिकीय रूप से बहुत अधिक significant है। लेकिन एक्सपेरिमेंट चलाते समय, यह जाँचना ज़रूरी होता है कि नई फीचर्स अलग-अलग demographics पर कैसा असर डाल रही हैं। कभी-कभी जो फीचर एक समूह को बहुत पसंद आती है, वही दूसरों को कम आकर्षक लग सकती है.
क्योंकि आप अपने डेटा को कई बार सेगमेंट करना चाहते हैं, आप एक फंक्शन ab_segmentation() बनाएँगे जो आपके A/B टेस्ट का असर अलग-अलग डेटा सेगमेंट्स पर analyze करेगा, ताकि जब भी आप इस तरह का विश्लेषण करना चाहें, उसे दोबारा इस्तेमाल कर सकें.
आपका फंक्शन एक कॉलम नाम लेगा और उस कॉलम के हर यूनिक वैल्यू पर चलते हुए lift और सांख्यिकीय significance की गणना करेगा.
यह अभ्यास पाठ्यक्रम का हिस्सा है
pandas के साथ मार्केटिंग कैंपेनों का विश्लेषण
अभ्यास निर्देश
- हमारे
ab_segmentation()फंक्शन के भीतर एक for लूप बनाएँ जो यूज़र-इनपुट किए गए कॉलम नामsegmentके हर यूनिक वैल्यू पर चले. - उन rows को isolate करें जहाँ 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')