خرید ‘تا زمان مرگ: پیش بینی ارزش طول عمر مشتری در پایتون

ساخت وبلاگ

مثال پایان به پایان: مدل توزیع دوتایی هندسی/منفی بتا (BG/NBD) ، با استفاده از طول عمر در پایتون

1. بینش هایی که به دنبال آن هستیم

مقاله امروز تمرکز خود را بر روی تنظیمات تجاری غیر پیمانکاری تعیین می کند. ما می خواهیم فرکانس معامله مشتریان و خطرات خاردار آنها را پیش بینی کنیم.

مشتری که به طور متوسط هر 20 روز یک بار خریداری می کرد ، اما به مدت 50 روز غیرفعال باقی مانده است ، باید خطر افزایشی را افزایش دهد. او ممکن است در آستانه دور شدن از تجارت ما ، به سمت دامنه محصول یک رقیب باشد. تیم بازاریابی ، هنگامی که برنامه ما به مشتریان خود که دارای چرب های بالا هستند ، می توانند تبلیغات ، تخفیف ها و سایر اقدامات دسترسی را در نظر بگیرند.

آنچه ما می خواهیم مدلی است که مشتریان را برای ما در معرض خطر قرار می دهد. ما همچنین می خواهیم که حجم خرید هر مشتری را پیش بینی کند. و در حالی که ما در آن هستیم ، باید ارزش طول عمر همه مشتریان را محاسبه کند.

روشهای علوم داده که این الزامات را برآورده می کنند ، خرید مدل های شما می میرد: btyd (ویکی پدیا): از "تولد" مشتری (هنگامی که او اولین سفارش خود را با تجارت ما قرار می دهد) تا روزی که او "می میرد" (وقتی او می میرد "به یک رقیب تبدیل می شود و به این ترتیب برای ما مرده است ، بنگری که او را تحریک کرده است).

مدل های Chu مشتری که بیشتر در علوم داده با آنها روبرو می شویم ، در مورد تنظیمات قراردادی قابل استفاده است. مشتریان با ارائه دهندگان اینترنت ، شبکه های تلفن همراه ، شرکت های بیمه و ارائه دهندگان خدمات مبتنی بر اشتراک ، قراردادهای محدود را امضا می کنند. شرکت های موجود در تنظیمات قراردادی می توانند دیدگاه بسیار واضح تری نسبت به مشتریانی ایجاد کنند که تمایل به فریب دادن دارند. داده های خام آنها هر زمان که یک قرارداد نزدیک به پایان خود باشد ، خطر بالایی را نشان می دهد. تیم های فروش و بازاریابی درست قبل از شروع فکر کردن در مورد تجدید یا لغو اشتراک خود ، به مشتری می روند. به عنوان مثال ، مجموعه داده IBM Telco به عنوان نمونه ای همه جا برای مشکلات خفه کننده قراردادی تبدیل شده است که می توانیم یک باتری از مدلهای شناخته شده مانند رگرسیون لجستیک ، جنگل های تصادفی ، رویکردهای تقویت شیب و سایر طبقه بندی ها را به کار ببریم.

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

درعوض ، ما باید با انجام فرضیات توزیع ، رفتار خرید مشتریان را تجزیه و تحلیل کنیم. یک مدل احتمال همچنین ما را قادر می سازد حجم خرید را پیش بینی کنیم.

مدلی که می خواهیم بسازیم ، تیم های بازاریابی را قادر می سازد تا تمرکز تلاش خود را بر روی مشتریانی که مدل آنها یک نقطه عطف را مشخص می کند ، تعیین کنند.

در مقاله امروز ، ما 2 لقمه را پیاده سازی خواهیم کرد:

  • مدل binomial بتا-زومتریک/منفی (BG/NBD) ،
  • همراه با مدل گاما گاما برای برآورد ارزش طول عمر مشتری.

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

تصویر زیر نمونه ای از خروجی را که می خواهیم از مدل خود بدست آوریم نشان می دهد. DataFrame که همه مشتریان ما را لیست می کند ، که ما شاخص های عملکرد زیر را برای آنها استخراج خواهیم کرد.

  • CLV ارزش طول عمر مشتری را نشان می دهد: در این حالت ، درآمد طی یک دوره زمانی انتخاب شده ، به عنوان مثال 12 ماه.
  • این چهار ستون پیش بینی تعداد معاملات خرید را که می توانیم از هر مشتری 10 ، 30 ، 60 و 90 روز انتظار داشته باشیم پیش بینی می کند.
  • Prob_Alive احتمال زنده بودن مشتری را تخمین می زند. مکمل آن (1 - P) معادل ریسک مشتری است: دور کردن از تجارت ما و طرفداری از یک رقیب.

2. وابستگی ها

علاوه بر کتابخانه های اصلی ما در بالا ، کتابخانه Lifetimes را نصب و وارد می کنیم.

3. داده های درگیری

منبع داده ای که می خواهیم از آن استفاده کنیم به عنوان یک فایل اکسل از مخزن یادگیری ماشین UC Irvine در دسترس است: "خرده فروشی آنلاین.(2015). مخزن یادگیری ماشین UCI. ویژگی های Creative Commons. "

این شامل 542،000 رکورد برای سالهای 2010 و 2011 از یک خرده فروش آنلاین انگلیس است.

ابتدا به دنبال سوابق بدون مشتری قابل شناسایی هستیم. ما حدود 135،000 از آنها را می یابیم ، بیش از 3،710 شماره فاکتور پخش شده است.

از نظر فرضی ، ما می توانیم از شماره فاکتور به عنوان متغیرهای ساختگی استفاده کنیم که هر یک مشتری غیرعادی را نشان می دهد. اما این مدل ما را تحریف می کند. ما علاقه مند به تکرار مشتریان و الگوهای تقاضای آنها هستیم. با تفسیر هر یک از این 3700 شماره فاکتور به عنوان مشتری ساختگی ، تعداد خریداران یک بار را ضرب می کنیم. آنها یک روند قابل تشخیص را به ما ارائه نمی دهند و در عوض الگوهای ما را می توانیم برای مشتریان قابل شناسایی استنباط کنیم ، که 4،300 آن را پیدا می کنیم. بنابراین ، ما باید این 135،000 سوابق را که فاقد شناسه مشتری هستند حذف کنیم.

قبل از شروع به تغییر داده های منبع ، DataFrame را کپی می کنیم تا داده های منبع اصلی را بدون تغییر بگذاریم.

بیایید متغیرهای عددی را مرور کنیم.

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

پس از محدود کردن مجموعه داده به مقادیر مثبت ، از این فرصت برای تنظیم برخی از داده ها استفاده می کنیم.

  • روش dt. date مؤلفه زمان را از تاریخ فاکتور حذف می کند.
  • پاندا شناسه مشتری را به عنوان یک متغیر عددی تفسیر می کند. بیایید آن را به عنوان یک نوع شیء/رشته تعریف کنیم.

این مجموعه داده شامل 4،339 شناسه مشتری منحصر به فرد و 305 تاریخ فاکتور در افق زمانی است.

شماره فاکتور ، کدهای سهام و توضیحات اطلاعات معنی داری را برای تجزیه و تحلیل ما ارائه نمی دهد ، بنابراین ما آنها را حذف می کنیم.

ستون "کشور" می تواند برای تقسیم مشتری مفید باشد. اما در حالی که مجموعه داده حاوی تعداد نسبتاً بالایی از سوابق ، 400000 است ، مدت زمان طولانی را پوشش نمی دهد: فقط 2 سال. اگر سعی کردیم آن را بین 20 کشور مختلف تقسیم کنیم - برخی از آنها با چند مشتری و معاملات - ما مواد اولیه را برای تجزیه و تحلیل خود رقیق می کنیم و برای دستیابی به نتایج کمتر قابل اعتماد است. بنابراین ، ما همچنین ستون "کشور" را حذف می کنیم و رفتار جهانی مشتری را تجزیه و تحلیل خواهیم کرد.

برای تعیین مقادیر پولی معاملات - و بعداً مقادیر طول عمر همه مشتریان - با ضرب مقادیر با قیمت واحد مربوطه ، یک ستون جدید "درآمدها" وارد می کنیم.

خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید

برچسب : نویسنده : عفت السادات شجاعی بازدید : <-PostHit-> تاريخ : دوشنبه 22 اسفند 1401 ساعت: 17:55