कोडिंग साक्षात्कार की तैयारी · पाठ

A/B परीक्षण का आवंटन और मेट्रिक्स

प्रयोग के आवंटन को परिणामों से जोड़ना और प्रत्येक वैरिएंट के मेट्रिक्स निकालना

पाठ 3, कुल 4 में से13 चरण

A/B परीक्षण का आवंटन और मेट्रिक्स, CoddyKit पर कोडिंग साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह कोडिंग साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

A/B परीक्षण का प्रश्न क्या जाँचता है

A/B परीक्षण के प्रश्न यह जाँचते हैं कि क्या आप प्रयोग के असाइनमेंट को परिणामों से सही ढंग से जोड़कर हर विकल्प के लिए साफ़ मापदंड निकाल सकते हैं।

गलती लगभग हमेशा जोड़ में होती है: ऐसे उपयोगकर्ताओं के परिणाम गिनना जो कभी प्रयोग में शामिल ही नहीं हुए, या दो बार असाइन किए गए उपयोगकर्ताओं की दोहरी गिनती करना। असाइनमेंट का जोड़ सही कर लें, तो मापदंडों की गणना सरल अंकगणित है।

आपको मिलने वाली दो तालिकाएँ

एक असाइनमेंट तालिका और एक परिणाम तालिका की अपेक्षा रखें:

  • assignments(user_id, variant, assigned_at), जहाँ विकल्प 'नियंत्रण' या 'प्रयोग' होता है।
  • orders(user_id, order_id, amount, created_at) या कोई सामान्य घटना तालिका।

प्रयोग में कौन शामिल है, इसका अंतिम विश्वसनीय स्रोत असाइनमेंट है। परिणामों की गिनती तभी करें जब उपयोगकर्ता असाइनमेंट में मौजूद हो।

CREATE TABLE assignments (
  user_id     INT,
  variant     VARCHAR(20),
  assigned_at TIMESTAMP
);

CREATE TABLE orders (
  user_id    INT,
  order_id   INT,
  amount     NUMERIC,
  created_at TIMESTAMP
);

असाइनमेंट से शुरू करें, परिणामों पर LEFT JOIN करें

मूल नियम: असाइनमेंट तालिका से शुरुआत करें और परिणामों पर LEFT JOIN करें। इससे वे उपयोगकर्ता भी बने रहते हैं जिन्हें प्रयोग में शामिल किया गया था लेकिन जिनका रूपांतरण कभी नहीं हुआ—ईमानदार हर को निकालने के लिए यह आवश्यक है।

INNER JOIN बिना बताए रूपांतरण न करने वाले उपयोगकर्ताओं को हटा देगा और आपकी रूपांतरण दर को बढ़ा-चढ़ाकर दिखाएगा।

SELECT
  a.user_id,
  a.variant,
  o.order_id
FROM assignments a
LEFT JOIN orders o
  ON o.user_id = a.user_id;

हर विकल्प के लिए रूपांतरण की गिनती

रूपांतरण दर = हर विकल्प के लिए रूपांतरित उपयोगकर्ता / असाइन किए गए उपयोगकर्ता। अंश में अलग-अलग रूपांतरित उपयोगकर्ताओं की गिनती करें और हर में सभी असाइन किए गए उपयोगकर्ताओं की।

ऑर्डर करने वाले उपयोगकर्ता पर COUNT(DISTINCT ...) का उपयोग करें, ताकि तीन ऑर्डर वाला उपयोगकर्ता भी केवल एक रूपांतरित उपयोगकर्ता गिना जाए।

SELECT
  a.variant,
  COUNT(DISTINCT a.user_id)                              AS assigned,
  COUNT(DISTINCT o.user_id)                              AS converters,
  ROUND(100.0 * COUNT(DISTINCT o.user_id)
              / COUNT(DISTINCT a.user_id), 2)            AS conv_rate_pct
FROM assignments a
LEFT JOIN orders o ON o.user_id = a.user_id
GROUP BY a.variant;

दोहरे असाइनमेंट का जाल

यदि कोई उपयोगकर्ता असाइनमेंट में दो बार दिखाई दे—एक बार प्रत्येक विकल्प में—तो क्या होगा? आपका जोड़ अब उसे दोनों पक्षों में गिनेगा और प्रयोग दूषित हो जाएगा।

साक्षात्कारकर्ता अक्सर यह स्थिति जानबूझकर रखते हैं। इससे बचने के लिए जोड़ करने से पहले असाइनमेंट को हर उपयोगकर्ता के लिए एक ही विकल्प तक सीमित करें, सामान्यतः पहले असाइनमेंट तक।

WITH dedup AS (
  SELECT user_id, variant,
    ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY assigned_at) AS rn
  FROM assignments
)
SELECT user_id, variant
FROM dedup
WHERE rn = 1;

असाइनमेंट के बाद के परिणाम ही गिनें

उपयोगकर्ता को असाइन किए जाने से पहले किया गया ऑर्डर प्रयोग के कारण नहीं हो सकता। समय-संबंधी शर्त जोड़ें: परिणाम assigned_at के बराबर या उसके बाद होना चाहिए।

यह शर्त LEFT JOIN के ON खंड में रखें, ताकि रूपांतरण न करने वाले उपयोगकर्ता फिर भी बने रहें।

SELECT
  a.variant,
  COUNT(DISTINCT a.user_id) AS assigned,
  COUNT(DISTINCT o.user_id) AS converters
FROM assignments a
LEFT JOIN orders o
  ON o.user_id = a.user_id
 AND o.created_at >= a.assigned_at
GROUP BY a.variant;

परिणामों के जोड़ में ON और WHERE

यह निश्चित रूप से पूछा जाने वाला अगला प्रश्न है। यदि आप o.created_at >= a.assigned_at को WHERE में ले जाते हैं, तो LEFT JOIN आंतरिक जोड़ में बदल जाता है: जिन उपयोगकर्ताओं ने कभी ऑर्डर नहीं किया, उनकी पंक्तियों में o.created_at = NULL होता है, शर्त UNKNOWN होती है और वे गायब हो जाते हैं।

हर में रूपांतरण न करने वाले उपयोगकर्ताओं को बनाए रखने के लिए परिणामों को फ़िल्टर करने वाली शर्तें ON में रखें।

हर विकल्प के लिए आय के मापदंड

रूपांतरण के अलावा, साक्षात्कारकर्ता प्रति उपयोगकर्ता आय (ARPU) और प्रति रूपांतरित उपयोगकर्ता आय भी पूछते हैं। राशि का योग करें, फिर सही हर से भाग दें।

ARPU सभी असाइन किए गए उपयोगकर्ताओं से भाग देता है; प्रति रूपांतरित उपयोगकर्ता आय केवल ऑर्डर करने वाले उपयोगकर्ताओं से। यह स्पष्ट करें कि व्यवसाय को इनमें से कौन-सा मापदंड चाहिए।

SELECT
  a.variant,
  COUNT(DISTINCT a.user_id)                               AS assigned,
  COALESCE(SUM(o.amount), 0)                              AS revenue,
  ROUND(COALESCE(SUM(o.amount), 0)
        / COUNT(DISTINCT a.user_id), 2)                   AS arpu
FROM assignments a
LEFT JOIN orders o
  ON o.user_id = a.user_id
 AND o.created_at >= a.assigned_at
GROUP BY a.variant;

दो-स्तरीय समूहीकरण का प्रतिरूप

जब मापदंड प्रति उपयोगकर्ता औसत ऑर्डर हो, तो इसे एक ही चरण में न निकालें; ऐसा करने पर उपयोगकर्ता-स्तर और ऑर्डर-स्तर की बारीकियाँ मिल जाएँगी। पहले उपयोगकर्ता-स्तर पर समूहीकरण करें, फिर उपयोगकर्ताओं के बीच औसत निकालें।

पहले प्रति उपयोगकर्ता और फिर प्रति विकल्प वाला यह प्रतिरूप सही स्तर रखता है और साक्षात्कार में अक्सर अंतर स्पष्ट करता है।

WITH per_user AS (
  SELECT a.variant, a.user_id,
    COUNT(o.order_id) AS orders_cnt
  FROM assignments a
  LEFT JOIN orders o
    ON o.user_id = a.user_id
   AND o.created_at >= a.assigned_at
  GROUP BY a.variant, a.user_id
)
SELECT variant, ROUND(AVG(orders_cnt), 3) AS avg_orders_per_user
FROM per_user
GROUP BY variant;

पूरी और तर्कसंगत क्वेरी

सब कुछ मिलाएँ: पहले असाइनमेंट तक सीमित करें, असाइनमेंट से शुरुआत करें, परिणामों पर ON में समय-संबंधी शर्त लगाएँ और हर विकल्प के लिए रूपांतरण तथा ARPU दिखाएँ। लिखते समय हर शर्त का उद्देश्य स्पष्ट करते जाएँ।

WITH enrolled AS (
  SELECT user_id, variant, assigned_at
  FROM (
    SELECT user_id, variant, assigned_at,
      ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY assigned_at) AS rn
    FROM assignments
  ) x WHERE rn = 1
)
SELECT
  e.variant,
  COUNT(DISTINCT e.user_id)                            AS assigned,
  COUNT(DISTINCT o.user_id)                            AS converters,
  ROUND(100.0 * COUNT(DISTINCT o.user_id)
              / COUNT(DISTINCT e.user_id), 2)          AS conv_pct,
  ROUND(COALESCE(SUM(o.amount),0)
        / COUNT(DISTINCT e.user_id), 2)                AS arpu
FROM enrolled e
LEFT JOIN orders o
  ON o.user_id = e.user_id
 AND o.created_at >= e.assigned_at
GROUP BY e.variant;

साक्षात्कारकर्ता जिन संगति-जाँचों की अपेक्षा करते हैं

परिणाम बताने से पहले प्रयोग की व्यवस्था की जाँच करें:

  • क्या विकल्पों का आकार लगभग संतुलित है? जब 50/50 अपेक्षित हो, तब 90/10 का विभाजन किसी त्रुटि का संकेत है।
  • क्या कोई उपयोगकर्ता दोनों विकल्पों में पहुँचा? एक से अधिक अलग-अलग विकल्प वाले उपयोगकर्ताओं की गिनती करें।
  • क्या ऐसे असाइनमेंट हैं जिनके लिए संभावित परिणाम-अवधि ही नहीं है, क्योंकि असाइनमेंट डेटा की अंतिम सीमा के बाद हुआ?

बिना पूछे ये जाँचें प्रस्तुत करना आपके विश्लेषणात्मक परिपक्वता को दिखाता है।

SELECT user_id, COUNT(DISTINCT variant) AS variant_count
FROM assignments
GROUP BY user_id
HAVING COUNT(DISTINCT variant) > 1;

त्वरित जाँच

आप हर विकल्प के लिए रूपांतरण निकालने हेतु ऑर्डर को असाइनमेंट से LEFT JOIN करते हैं, लेकिन o.created_at >= a.assigned_at को WHERE खंड में रखते हैं। क्या होगा?

पुनरावलोकन: A/B परीक्षण का असाइनमेंट और मापदंड

अब आपके पास प्रयोग-विश्लेषण की एक तर्कसंगत कार्यपद्धति है:

  • असाइनमेंट को अंतिम विश्वसनीय स्रोत मानें और परिणामों पर LEFT JOIN करें।
  • हर उपयोगकर्ता के लिए एक ही विकल्प रखने हेतु दोहराव हटाएँ (पहला असाइनमेंट)।
  • रूपांतरण न करने वाले उपयोगकर्ताओं को बनाए रखने के लिए परिणामों पर समय-संबंधी शर्त ON खंड में लगाएँ, WHERE में कभी नहीं।
  • रूपांतरण, ARPU और प्रति रूपांतरित उपयोगकर्ता आय के लिए सही हर चुनें।
  • प्रति उपयोगकर्ता औसत के लिए पहले उपयोगकर्ता-स्तर पर समूहीकरण करें।
  • विभाजन के संतुलन और अलग-अलग विकल्पों में असाइनमेंट की संगति-जाँच करें।

अगला विषय: इन प्रति-विकल्प मापदंडों को वृद्धि, सांख्यिकीय महत्त्व और सुरक्षा-मापदंडों में बदलना।

शुरुआत निःशुल्क

एआई शिक्षक के साथ कोडिंग साक्षात्कार की तैयारी सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
90
पाठ
360

अक्सर पूछे जाने वाले प्रश्न

क्या “A/B परीक्षण का आवंटन और मेट्रिक्स” पाठ निःशुल्क है?

हाँ—“A/B परीक्षण का आवंटन और मेट्रिक्स” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। कोडिंग साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“A/B परीक्षण का आवंटन और मेट्रिक्स” में मैं क्या सीखूँगा?

प्रयोग के आवंटन को परिणामों से जोड़ना और प्रत्येक वैरिएंट के मेट्रिक्स निकालना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ कोडिंग साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या कोडिंग साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर कोडिंग साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“A/B परीक्षण का आवंटन और मेट्रिक्स” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस कोडिंग साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर कोडिंग साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. बहु-चरणीय फ़नल बनाना
  2. क्रमबद्ध घटनाएँ और समय विंडो
  3. A/B परीक्षण का आवंटन और मेट्रिक्स
  4. SQL में लिफ्ट, सांख्यिकीय महत्त्व और सुरक्षा-जाँच
← कोडिंग साक्षात्कार की तैयारी पर वापस जाएँ