تجزیه و تحلیل سبد بازار یکی از تکنیک های کلیدی است که توسط خرده فروشان بزرگ برای کشف ارتباطات بین موارد استفاده می شود. این کار با جستجوی ترکیبی از مواردی که اغلب در معاملات اتفاق می افتد کار می کند. به عبارت دیگر ، به خرده فروشان این امکان را می دهد تا روابط بین کالاهایی را که افراد خریداری می کنند شناسایی کنند.
قوانین انجمن به طور گسترده ای برای تجزیه و تحلیل داده های خرده فروشی یا داده های معامله مورد استفاده قرار می گیرد و برای شناسایی قوانین قوی کشف شده در داده های معامله با استفاده از اقدامات جالب توجه ، بر اساس مفهوم قوانین قوی.
نمونه ای از قوانین انجمن
- فرض کنید 100 مشتری وجود دارد
- 10 نفر از آنها شیر خریداری کردند ، 8 کره خریداری کردند و 6 نفر از آنها را خریداری کردند.
- bought milk =>کره خریداری شده
- پشتیبانی = P (شیر و کره) = 6/100 = 0. 06
- اعتماد به نفس = پشتیبانی/p (کره) = 0. 06/0. 08 = 0. 75
- آسانسور = اعتماد به نفس/p (شیر) = 0. 75/0. 10 = 7. 5
توجه: این مثال بسیار کوچک است. در عمل ، یک قاعده قبل از اینکه از نظر آماری قابل توجه باشد ، به پشتیبانی چند صد معاملات نیاز دارد و مجموعه داده ها اغلب حاوی هزاران یا میلیون ها معاملات هستند.
خوب ، به اندازه کافی برای این تئوری ، اجازه دهید به کد برسیم.
مجموعه داده ای که امروزه از آن استفاده می کنیم از مخزن یادگیری ماشین UCI تهیه شده است. این مجموعه داده "خرده فروشی آنلاین" نامیده می شود و در اینجا می توانید پیدا کنید. این شامل کلیه معاملات انجام شده بین 01/12/2010 و 09/12/2011 برای یک خرده فروش آنلاین مستقر در انگلستان و ثبت شده است.
بسته ها را بارگیری کنید
کتابخانه (Tidyverse)کتابخانه (readxl)کتابخانه (Knitr)کتابخانه (GGPLOT2)کتابخانه (لوبیدات)کتابخانه (Arules)کتابخانه (Arulesviz)کتابخانه (Plyr)
پیش پردازش داده و کاوش
خرده فروشی خرده فروشی خرده فروشی ٪ جهش (توضیحات = as. factor (توضیحات))خرده فروشی ٪ جهش (کشور = as. factor (کشور))خرده فروشی $ تاریخ خرده فروشی $ زمان خرده فروشی $ فاکتورGlimpse (خرده فروشی)
پس از پیش پردازش ، مجموعه داده شامل 406. 829 سوابق و 10 زمینه است: فاکتور ، کد سهام ، توضیحات ، کمیت ، صورتحساب ، UnitPrice ، مشتری ، کشور ، تاریخ ، زمان.
مردم چه ساعتی غالباً بصورت آنلاین خریداری می کنند؟
برای یافتن پاسخ این سؤال ، باید "ساعت" را از ستون زمان استخراج کنیم.
خرده فروشی $ زمان خرده فروشی $ زمان = ساعت (a)retail %>% ggplot (aes (x = زمان)) +geom_histogram (stat = "count" ، fill = "indianred")
بین ساعت روز و حجم سفارش تعصب روشنی وجود دارد. بیشتر سفارشات بین 10: 00-15: 00 اتفاق افتاد.
هر مشتری چند کالای خریداری می کند؟
Detach ("بسته: plyr" ، بارگیری = true)retail %>% group_by(InvoiceNo) %>% summarize(n_items = mean(Quantity)) %>% ggplot (aes (x = n_items))+GEOM_HISTOGROM (FILL = "IndianRed" ، سطل ها = 100000) +GEOM_RUG ()+coord_cartesian (xlim = c (0،80))افراد بیشتر کمتر از 10 مورد (کمتر از 10 مورد در هر فاکتور) خریداری می کردند.
10 فروشنده برتر
TMP ٪group_by(StockCode, Description) %>% summarize(count = n()) %>% ترتیب (DESC (تعداد))TMP TMPtmp %>% ggplot (aes (x = تنظیم مجدد (توضیحات ، تعداد) ، y = count))+geom_bar (stat = "هویت" ، پر = "قرمز هندی")+coord_flip ()
قوانین انجمن برای خرده فروش آنلاین
قبل از استفاده از هر الگوریتم معدن قاعده ، باید داده ها را از قالب قاب داده به معاملات تبدیل کنیم به گونه ای که تمام مواردی را که در یک ردیف خریداری شده اند ، داشته باشیم. به عنوان مثال ، این فرمی است که ما نیاز داریم:
کتابخانه خرده فروشی_شور (PLYR)عملکرد لیست مورد (DF1) خمیر (توضیحات df1 $ ،فروپاشی = "،"))
تابع ddply () یک قاب داده را می پذیرد ، آن را بر اساس یک یا چند عامل تقسیم می کند ، روی قطعات محاسبه می کند و سپس نتایج را به عنوان یک قاب داده باز می گرداند. ما از "،" برای جدا کردن موارد مختلف استفاده می کنیم.
ما فقط به معاملات مورد نیاز داریم ، بنابراین ستون های مشتری و تاریخ را حذف کنید.
itemlist $ $ customerId itemlist $ $ colnames (AttemList)
فریم داده را در یک پرونده CSV بنویسید و بررسی کنید که آیا فرمت معامله ما صحیح است یا خیر.
Writ. CSV (AttemList ، "Market_basket. csv" ، نقل قول = false ، row. names = true)
کامل! اکنون ما مجموعه داده معامله خود را داریم و این ماتریس مواردی را که با هم خریداری می شوند نشان می دهد. ما در واقع نمی بینیم که چند بار آنها با هم خریداری می شوند ، و ما قوانینی را نیز نمی بینیم. اما ما می خواهیم دریابیم.
بیایید نگاهی دقیق تر به تعداد معاملات ما و آنچه در آن هستیم ، بیندازیم.
TR TRخلاصه (TR)
ما 19،296 معاملات را مشاهده می کنیم ، و این تعداد ردیف ها نیز هست. 7،881 مورد وجود دارد - به یاد داشته باشید موارد توضیحات محصول در مجموعه داده اصلی ما هستند. معاملات در اینجا مجموعه ها یا زیر مجموعه های این 7،881 مورد است.
خلاصه اطلاعات مفیدی به ما می دهد:
- تراکم: درصد سلولهای غیر خالی در ماتریس پراکنده. به عبارت دیگر ، تعداد کل موارد خریداری شده بر اساس تعداد کل موارد ممکن در آن ماتریس تقسیم می شود. ما می توانیم محاسبه کنیم که چند مورد با استفاده از چگالی مانند SO خریداری شده است: 19296 x 7881 x 0. 0022
- شایع ترین موارد باید همان نتایج ما در شکل 3 باشد.
- با نگاهی به اندازه معاملات: 2247 معاملات فقط برای 1 مورد ، 1147 معاملات برای 2 مورد انجام شده است ، همه راه تا بزرگترین معامله: 1 معامله برای 420 مورد. این نشان می دهد که بیشتر مشتریان در هر معامله تعداد کمی از موارد را خریداری می کنند.
بیایید نگاهی به طرح فرکانس آیتم بیندازیم ، که باید مطابق با شکل 3 باشد.
مورد frequencyplot (tr ، topn = 20 ، نوع = "مطلق")
برخی از قوانین را ایجاد کنید
- ما از الگوریتم Apriori در کتابخانه Arules برای معدن موارد مکرر و قوانین انجمن استفاده می کنیم. این الگوریتم از جستجوی سطح عاقلانه برای موارد مکرر استفاده می کند.
- ما برای بازگشت کلیه قوانینی که حداقل 0. 1 ٪ و اعتماد به نفس حداقل 80 ٪ دارند ، SUPP = 0. 001 و Conf = 0. 8 را پشت سر می گذاریم.
- ما قوانین را با کاهش اعتماد به نفس مرتب می کنیم.
- به خلاصه قوانین نگاهی بیندازید.
خلاصه قوانین (قوانین)
خلاصه قوانین اطلاعات بسیار جالبی به ما می دهد:
- تعداد قوانین: 89،697.
- توزیع قوانین براساس طول: طول 6 مورد بیشترین قوانین را دارد.
- خلاصه اقدامات کیفیت: دامنه پشتیبانی ، اعتماد به نفس و آسانسور.
- اطلاعات مربوط به داده کاوی: کل داده های کاوی و حداقل پارامترهایی که قبلاً تنظیم کردیم.
ما 89،697 قانون داریم. من نمی خواهم همه آنها را چاپ کنم ، بنابراین اجازه دهید 10 مورد برتر را بازرسی کنیم.
بازرسی (قوانین [1:10])
تفسیر کاملاً مستقیم به جلو است:
- 100 ٪ مشتریانی که "مرغ Wobbly" خریداری کردند نیز "دکوراسیون" خریداری کردند.
- 100 ٪ مشتریانی که "چای سیاه" را خریداری کرده اند نیز "شیشه شکر" را خریداری کردند.
و این 10 قانون برتر را ترسیم کنید.
طرح Toprules (toprules)
طرح (toprules ، method = "نمودار")
طرح (toprules ، method = "گروه بندی شده")
خلاصه
در این پست ، ما یاد گرفته ایم که چگونه تجزیه و تحلیل سبد بازار را در R انجام دهیم و چگونه می توان نتایج را تفسیر کرد. اگر می خواهید آنها را در Python پیاده سازی کنید ، Mlxtend یک کتابخانه پایتون است که برای این نوع برنامه ، الگوریتم Apriori را اجرا می کند. می توانید یک آموزش مقدمه را در اینجا پیدا کنید.
اگر می خواهید پرونده R Markdown برای تهیه این پست وبلاگ استفاده شود ، می توانید در اینجا پیدا کنید.
کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید
برچسب : نویسنده : محسن زنجانچی بازدید : 30 تاريخ : پنجشنبه 29 تير 1402 ساعت: 13:18