تقسيم العملاء لشرائح: التجميع k-means
قسم التسويق في نخلة يرسل نفس العرض لكل العملاء، والنتيجة ضعيفة. الأفضل نقسمهم شرائح متشابهة ونخاطب كل شريحة بطريقتها. المشكلة: ما عندنا إجابات جاهزة (ما فيه عمود «الشريحة»). هنا يجي التجميع.
k-means أشهر خوارزمية تجميع. تختار عدد الشرائح k، وبعدها تكرر خطوتين لين تثبت: (1) التوزيع: كل عميل يروح لأقرب مركز. (2) التحديث: كل مركز ينتقل لمتوسط عملائه. جرّبها خطوة بخطوة:
المراكز (✚) في أماكن عشوائية. اضغط «وزّع العملاء».
النموذج ما يعطيك أسماء للشرائح؛ أنت كمحلل تفسرها: «زوار كثير بسلة صغيرة» = عملاء البقالات اليومية، «زيارات قليلة بسلة كبيرة» = مشتريات المناسبات والهدايا. وبعدها يجي القرار: عرض كميات للأولى، وتغليف هدايا للثانية.
# customers: [visits per month, basket in tens of SAR] customers = [[2, 4], [3, 5], [2, 5], [9, 6], [10, 4], [8, 7], [4, 21], [3, 19], [5, 23]] centers = [[2, 5], [9, 5], [4, 20]] def nearest(p): best, best_d = 0, None for i, c in enumerate(centers): d = ((p[0] - c[0]) ** 2 + (p[1] - c[1]) ** 2) ** 0.5 if best_d is None or d < best_d: best, best_d = i, d return best for p in customers: print(p, "-> segment", nearest(p) + 1)