پیدا کردن مشتری‌های خوب

مشتری خوب و یا وفادار کیست؟ شاید با خود بگویید چنین مشتری ای اصلا پیدا نمی شود.
اگر می خواهید بدانید مشتری وفادار کیست باید دو شاخص را در او بررسی نمایید:

  1. برای شرکت و مجموعه شما نزد دیگران تبلیغ و تعریف نماید.

  2. اگر شرکت دیگری با قیمتی کمتر و کیفیتی بهتر وارد عرصه شد باز هم با شما کار کند و به راحتی شما را ترک نکند.
    ﻫﺪف از اﻳﻦ ﻣﻘﺎﻟﻪ، پیش‌بینی و پیدا کردن مشتری‌های یک فروشگاه،جهت باز گشت و خرید مجدد است.

مقدمه

اکثر کمپانی های تجاری برای جذب مشتریان خود، برای آن ها تخفیف خرید محصول در نظر میگیرند. مشتریان با ارزش کسانی هستند که پس از خرید اول خود، دوباره برای خرید بر می گردند. با توجه به سابقه خرید، میتوان پیش بینی کرد که کدام مشتری وفادار است و کدام یک به دنبال خرید یک محصول جدید هستند. با این حال، شناسایی خریدارانی که قبل از خرید اولیه به عنوان خریدار وفادار در نظر گرفته شوند یک کار چالش بر انگیز است.!

توضیح تصویر

بنابراین باید پیش بینی کرد که کدام خریدار به احتمال زیاد خرید خود را تکرار خواهد کرد. برای کمک به توسعه الگوریتم، سطح سبد، سابقه پیشنهاد خرید برای تعداد زیادی از خریدارانی که به عنوان هدف می باشند، در نظر گرفته شده است.

کارهای مرتبط

- راهکار های پیش بینی خریداران وفادار:

  • به منظور شناسایی و پیش بینی اینکه کدام مشتریان تبدیل به خریداران وفادار خواهند شد، مسابقه ای ترتیب داده شده است که در زیر به شرح آن می پردازیم:
    علامت های تجاری مصرف کنندگان، اغلب به منظور معرفی محصولاتشان پیشنهادات تخفیفی برای جذب مشتری های جدید ارائه می دهند.
    با ارزش ترین مصرف کنندگان کسانی هستند که بعد از این خرید ابتدایی که همراه با تخفیف بوده است، بازگشتی دوباره داشته باشند.
    با داشتن تاریخچه ی کافی از خرید و فروش محصولات، این امکان پیش بینی وجود دارد که خریداران، زمانی که پیشنهادی ارائه می شود، آیتم جدید را خریداری کنند. به هرحال، شناسایی خریداران، قبل از خرید اولیه، یک کار چالش برانگیز است.
    چالش کسب ارزش شرکت کنندگان خریدار، بدین منظور است که خریداران به اصطلاح وفادار را پیش بینی کند.
    برای کمک به توسعه ی این چالش، الگوریتمی در آینده ارائه خواهد شد که برای یک مجموعه ی بزرگ از خریداران، در بازه ی زمانی مشخصی، سطح سبد خرید افراد با توجه به انگیزه و رفتار آن خریدار در نظر گرفته شده است. 1
    در ادامه ی بحث مثالی خواهیم داشت برای آشنایی بیشتر با روش Kaggle:

    • یکی از مسابقات Kaggle را مورد بررسی قرار دادیم که به معنی استفاده از فرصت دیگری به نام Vowpal Wabbit است.
      در این مسابقه سعی شده است پیرامون خصوصیات مهندسی آخرین مسابقه ی Kaggle و همچنین چگونگی به دست آوردن امتیازهای 3 نفر برتر از رهبران عمومی که معادل است با (~ 0.59347 AUC) بحث شود.

      • شرح کوتاه رقابت
        همانطور که می دانیم این مسابقه جهت پیش بینی تکرار خرید توسط مشتریان است. که در این مقوله حدود 150.000 خریدار مورد مطالعه قرار گرفتند.

      • اکتشاف داده
        امکان دانلود تمام داده ها در این قسمت وجود دارد. 2

      • تقلیل داده ها

      • ویژگی مهندسی

      • توضیح کامل و زبان اصلی این مثال را می توانید در لینک مقابل دنبال کنید. 3

آزمایش ها

سوال اصلی در این مسئله شناسایی مشتریانی است که به احتمال زیاد دوباره در آینده به خرید خواهند آمد. این اطلاعات به ما کمک خواهد کرد که هر کمپانی مشتریان هدف خود را شناسایی کند. احتمال اینکه یک مشتری دوباره خرید کند به دو چیز بستگی دارد:
1- آیا مشتری خرید اولش است؟
2- دفعات تکرار مشتری چقدر بوده است؟
در این گزارش فنی، یک روش برای این پاسخ به این سوال با استفاده از تجزیه و تحلیل بیزی ارائه شده است. درواقع این روش رگرسیون برای تخمین زدن وفاداری مشتری است. با پاسخ دادن به این سوالات میتوان در یک بازه زمانی مشخص مثلا 6ماه، پیش بینی کرد که این مشتری در آینده وفادار خواهد بود یا خیر؟
2-1- مدل سلسله مراتبی بیزی
در این مرحله، یکی مدل سلسله مراتبی بیزی برای پارامترهای زیر ساخته میشود. توزیع دوره ای زمانی است که سلسله مراتب داده ها مشخص شود، بنابراین داریم:

تعداد معاملات(خرید، تراکنش) انجام شد برابر است با
Jth
که به دنبال یک فرآیند پواسون با نرخ زیر است:

و احتمال از دست رفتن پس از هر خرید به شکل زیر است:
Pj

توضیح تصویر

اطلاعات مورد نیاز استفاده شده برای نمونه برداری از توزیع شرطی در زنجیره MCMC برای یک مشتری در معامله اول برابر است با T0، آخرین معامله برابر Tx است و تعداد معاملات انجام شده برابر x است. همه متغیرها به آسانی از تاریخ های معامله مشتریان بدست می آید. این مدل بدون در نظر گرفتن متغیرهای جمعیت شناختی/ شخصی مانند ایمیل، تلفن همراه و غیره شکل گرفته است و از این رو به کیفیت داده ها و دیتاست بسیار وابسته باشد. برای بدست آوردن مقادیر jʎ و Pj از الگوریتم MCMC توزیع میانه استفاده میشود. سپس احتمال اینکه مشتری j در دوره بعدی k، خرید داشته باشد برابر است با:
(1- Pj)(1-exp{-k jʎ})
در حالی که مدل بیز در تشخیص صحیح مشتریانی که به احتمال زیاد دوباره خرید خواهند کرد موثر خواهد بود، اما این مدل برای امتیاز دهی به میلیون ها مشتری موثرنخواهد بود. برای مثال کمپانی ای مانند HP که برای مقابله با میلیون ها مشتری، نیاز به یک مدلی بزرگتر خواهند داشت، این مدل ارائه شده کارآمد نخواهد بود.
2-2- تقریب بر اساس رگرسیون
پیچیدگی محاسباتی مدل بیز بدین معناست که حتی اگر نتایج مدل سازی امیدوارکننده باشد، پیاده سازی آن سخت و دشوار است. باید توجه داشت که مدل ارائه شده تنها برای هر مشتری 3 متغییر در نظر میگیرد، x،Tx و T1.علاوه بر این، اگر در مدل MCMC دو الگوریتمی بوجود بیاید که به دو مشتری نمره یکسانی بدهند، در مدل رگرسیون این اتفاق نخواهد افتاد و پارامترها با استفاده از تعاملات غیرخطی به جواب قاطعی خواهد رسید.
در این گزارش فنی، دو مدل رگرسیون چندجمله ای برای بدست آوردن مقادیر jʎ و Pj ساخته شده است. برای انجام این کار ما در ابتدا با استفاده از مدل بیز، مقادیر jʎ و Pj را برای 3میلیون مشتری بدست می آوریم. سپس با استفاده از لگاریتم برای برآورد پیش بینی دو مدل رگرسیون و برخی متغییرهای دیگر استفاده میکنیم. هنگامی که مقادیر jʎ و Pjبرای هر فرد از مدل رگرسیون بدست آمد، برای بدست آوردن احتمال خرید هر مشتری از مدت زمان K بعدی استفاده میشود.

تشریح مدل:
1- در ابتدا پایگاه داده مشتریان را در برنامه بارگذاری میکنیم
2- اسکریپتی نوشته میشود که متناسب با درخواست خروجی را به ما بدهد. مانند فروشندگانی که بالای 65 سال سن دارند و بیش از 1000دلار خرید کرده اند.
3- گروه انتخاب شده از مشتریان با استفاده از مدل پیش بینی نمره دریافت میکند.
4- زمانی که نمره دهی به پایان رسید، مشتریان بر اساس نمره دریافت شده مرتب می شوند. حال 25درصد مشتریانی که نمره بالایی دارند انتخاب میشوند.
5- حال که 25درصد مشتریان انتخاب شده اند، اطلاعات مورد نیاز آن ها از پایگاه داده استخراج میشود.
6- در نهایت خروجی به نمایش در می آید.

توضیح تصویر

لینک کد پیاده سازی به همراه دیتا :
پیوند ( کد به زبان پایتون)
پیوند ( به دلیل مقدار زیادی دیتا و به مشکل خوردن در گیتهاب، دیتا ها در این لینک نیز قرار گرفتند.)
رمز فایل: moshtarikhoob

مراجع

+[1] Peter.S.Fader , Bruce Hardie , Ka Lok Lee. “Counting your customers” the Easy Way: An alternative to thePareto/NBD model. Marketing Science. Vol. 24:No. 2, Spring 2007, pp. 275-284.
+[2] Dong Xiang. Fitting Generalized Additive Models with GAM procedure. SAS Institute Inc.
+[3] Jayanta Kumar Pal, Abhisek Saha, Subhasish Misra. Customer repeat purchase modeling- A Bayesian HierarchicalFramework. HP Labs technical report. No 85, July 2010.

محسن ایمانی

پروژه شما در این فاز با آن‌چه که از شما انتظار می‌رفت بسیار فاصله دارد.
در واقع مسئله‌ای که در این پروژه از شما انتظار حل آن را داریم این است که با در اختیار داشتن مجموعه‌ای از گزارش خرید‌های مشتریان یک فروشگاه، پیش‌بینی کنید که کدام از این مشتریان در آینده نیز برای خرید به این فروشگاه مراجعه خواهند کرد.
در واقع این مسئله به عنوان یک مسئله هوش مصنوعی(یادگیری ماشین) و در حوزه پیش‌بینی مبتنی بر یادگیری تعریف می‌شود. در صورتی که شما آن را به عنوان مسئله ای خارج از حوزه کامپیوتر و درس هوش مصنوعی ارائه و تشریح کرده‌اید.
در واقع با احترام به زحمتی که برای مطالعه و تهیه متن این گزارش متحمل شده‌اید. این گزارش ارتباطی به موضوع پروژه و آن‌چه که از شما انتظار می‌رود ندارد.
ان‌شالله در فاز آینده علاوه بر پیاده‌سازی، با اصلاح و اضافه کردن مقدمه و کارهای واقعا مرتبط با مسئله، این کاستی جبران شود.

تایید شده

متاسفانه هیچ کدی ننوشته اید. حتی کد درون لینک را بررسی نکرده اید. حداقل کد را اجرا می کردید و از آن درصد موفقیت به دست می آوردید.

با سلام
به نظرم طرح مسئله و اهمیت موضوع خلاصه و خیلی خوب بیان شده. البته چیزی که من الان به عنوان متن این پروژه دارم فکر می کنم کامل نیست و در زمان فعلی قطعا کامل تر شده. اما با مطالب قابل مشاهده فعلی به نظرم بعضی از مفاهیم بهتر بود که همین جا و با بیان خود نویسنده یا به صورت نقل قول مستقیم از منبع و به فارسی ذکر می شد که امکان تحلیل و درکش راحت تر باشه تا حالتی که به لینک زبان اصلی ارجاع داده بشه برای مطالعه. چون به نظرم در اون صورت اطلاعات مختلف و مفاهیم مختلف به صورت منظم تری در ذهن خواننده شکل میگیره مثل برخی مفاهیم که شاید اسمشون خیلی مفهوم رو واضح نشون نمیده مثل رهبران عمومی. و دلیل دیگه این که تلاش خود شما هم که قطعا زیاد بوده برای خواننده نمود بیشتری خواهد داشت.

رد شده

با سلام و خسته نباشید...
کار شما در مرحله اول نسبتا خوب بوده است ولی ایرادهایی هم از قبیل کم بودن و به روز نبودن مراجع و توضیح مختصر کارهای مرتبط دارد.
اما در رابطه با مرحله دوم کارتان در واقع شما فعالیتی نداشته اید:
۱.هیچ توضیحی راجع به کد و نتیجه آن نداده اید.
۲.مورد مهم تر این است که بدون اینکه جایی ذکر شود شما لینک پروژه فرد دیگری را برای لینک کدتان قرار داده اید!!!!( با توجه به تاریخ کامیت ها )

محسن ایمانی

شما در این فاز قرار بر این بود که یک پیاده‌سازی اولیه به همراه گزارش و ارزیابی نتایج داشته باشید که این کار را انجام ندادید.
مراجع شما هم هیچ ربطی به مسئله پروژه ندارد.
تنها کار مفید شما پیدا کردن نمونه پیاده سازی بود که به همین خاطر یک ستاره دریافت کرده‌اید.

انشالله در آخرین فاز کمبودهای این دو فاز را جبران کنید.

تایید شده

با سلام و عرض خسته نباشید. در فاز گزارش نتایج از شما انتظار می‌رفت که از نتایج کار خودتان (کد) جدولی تهیه نموده و در اختیار خواننده قرار دهید که بتواند از میزان دقت کد شما اطلاع پیدا کند یا بتواند میزان کارایی کار شما را قبل و بعد از بهبود کد مشاهده کند که متأسفانه شما اصلا به نتایج خودتان اشاره نکردید و صرفا نحوه محاسبه را شرح دادید. در ضمن کدی که در گیت‌هاب قرار دادید به زبان پایتون نیست، در واقع اصلا کد نیست! یا اگر هست بهتر بود توضیحی می‌دادید که بنده بفهمم منظور از این 2000 خط کد به زبان پایتون چیست، و اگر کد هست و به زبان پایتون هم هست واقعا این حجم کد برای یک پروژه درسی قابل تحسین است و تلاش زیاد شما قابل تقدیر.
موفق باشید

تایید شده

توضیح در قسمت آزمایش ها یک مقدار گنگ به نظر می رسد.
تشریح مدل به خوبی صورت گرفته است.
اما در این آدرس https://gist.github.com/AtiehG/a52bb848e6f8bced111b که کدها قرار داده شد هیچ توضیح و گزارشی از نتایج یافت نشد.
کد به شدت زیاد بود و یک قسمت به نام History در پایین کد دیده می شد که هیچ توضیحی برای آن آورده نشده است.

محسن ایمانی

شما در این فاز تلاش اندکی برای بهبود وضعیت پروژه خود داشتید. اما در واقع موفق به ارائه یک پیاده‌سازی کامل و مناسب و همچنین گزارش نتایج آزمایش خود، که اهداف اصلی این فاز بود نشده‌اید.