در این سوال، شما به تحلیل رفتار مشتریان میپردازید.
![توضیح تصویر](https://bayanbox.ir/view/4981133386058029579/basket.jpg)
# دادگان
شما به دادگان تراکنشهای یک فروشگاه آنلاین موادغذایی از [این لینک](/problemset/assignments/4367/download_problem_initial_project/125313/) دسترسی دارید. در این سوال، به تمامی خریدهایی که یک مشتری در یک روز انجام میدهد، "سبد" میگوییم:
![توضیح تصویر](https://bayanbox.ir/view/8564290632376169947/Factor.jpg)
هر ردیف دادگان، سفارش یک نوع محصول توسط یک مشتری را طبق جدول زیر نشان میدهد:
| نام ستون | توضیحات ستون |
|:----------|:------------------:|
| Customer Id | شناسه مشتری |
| Date | تاریخ سفارش |
| Product | نام محصول |
# صورت مسئله
ابتدا با استفاده از این دادگان، به ۵ سوال اکتشافی زیر پاسخ دهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست).
1. تعداد محصولات یکتا در کل دادگان، چندتاست؟
```
1000
```
2. میزان فروش به ازای هر روز به صورت میانگین چند است (تا دو رقم بعد از اعشار)؟
```
70.43
```
3. چهار محصولی که کمتر از بقیه در سبد مشتریان قرار گرفتهاند، کدامند (ترتیب مهم نیست)؟
```
cake,apple,coffee,meat
```
4. پنج مشتریای که در سال ۲۰۲۰، بیشترین تعداد "سبد" را داشتهاند، کدامند (ترتیب مهم نیست)؟
```
05XJ2SI7Z3KM,PZ2VNYRNH7UE,ZT6I3ZOEX9AP,IUMEKLUW51PE,HRZ5J6MERGJE
```
5. کدام روز هفته، بیشترین تعداد محصول فروش رفتهاست؟
```
Friday
```
هر کدام از این ۵ سوال بالا، دارای ۲۰ امتیاز هستند (۱۰۰ امتیاز در مجموع).
حال، به تحلیل سبد خرید مشتریان که یکی از تکنیک های کلیدی، خرده فروشان بزرگ برای کشف ارتباط بین اقلام خریداری شدهاست، میپردازید و بدین منظور، از [قوانین وابستگی](https://fa.wikipedia.org/wiki/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C_%D9%82%D8%A7%D9%86%D9%88%D9%86_%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C) استفاده خواهید کرد.
به عنوان مثال، با قانون وابستگی میتوان محاسبه کرد که اگر یک مشتری پیاز و سیب زمینی را در سبد خرید خود قرار داده باشد، با چه احتمالی، او مایل به خرید گوشت همبرگر نیز خواهد بود؟ چنین اطلاعاتی میتوانند در تصمیماتی مانند ارائه تخفیف، قراردادن محصولات در کنار هم و یا پکیج کردن آنها، تاثیر بگذارند.
<details class="blue">
<summary>
**راهنمایی**
</summary>
با مثال زیر، دو معیار قوانین وابستگی که در این سوال نیاز دارید، توضیح داده میشوند. فرض کنید که ۱۰۰ سبد دارید که ۱۰تای آنها شیر، ۸تای آنها کره و ۶ تای آنها هر دو را دارند.
معیار پشتیبانی (`support`)، نشان می دهد که یک مجموعه محصول/محصولات چقدر محبوب است:
$$support(X) = \frac{Number\:of\:baskets\:containing\:product(s)\:X}{Number\:of\:all\:baskets}$$
در مثال بالا، `support(milk)` برابر است با ۰.۱ و `support(milk,butter)` برابر است با ۰.۰۶
معیار اطمینان (`confidence`)، نشان میدهد که هنگام خرید محصول/محصولات `X` چقدر احتمال دارد که محصول/محصولات `Y` خریداری شوند و از این امر به عنوان "الگو" یاد میکنیم:
$$confidence(X->Y)=\frac{support(X,Y)}{support(X)}$$
در مثال بالا، `confidence(milk->butter)` برابر است با ۰.۶
</details>
به استفاده از معیارهای `support` و `confidence`، به دو سوال زیر پاسخ دهید (مثال خروجی هر سوال، در زیر آن آورده شدهاست):
6. پنج محصولی که بیشترین `support` را دارند به ترتیب نزولی کدامند؟
```
cake,apple,coffee,meat,tomato
```
7. از بین مواردی که `support` آنها، حداقل ۰.۰۱ میباشد. دو الگویی که بیشترین `confidence` را دارند، به ترتیب نزولی کدامند؟
```
("cake","potato")->("apple")|("coffee","soda")->("meat")
```
<details class="blue">
<summary>
**راهنمایی**
</summary>
**شاید** بتوانید که از الگوریتم [آپریوری](https://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_%D8%A2%D9%BE%D8%B1%DB%8C%D9%88%D8%B1%DB%8C)، برای حل سوالات تحلیل سبد خرید، استفاده کنید.
</details>
هر کدام از این ۲ سوال بالا، دارای ۵۰ امتیاز هستند (۱۰۰ امتیاز در مجموع) و در صورتی که به تمامی سوالات، این صفحه پاسخ صحیح دهید. شما بایستی که ۲۰۰ امتیاز کسب کنید.
# ارسال پاسخ
برای ارسال پاسخ، جواب هر سوال را مشابه مثال، در یک سطر از یک فایل `text` بنویسید. در نهایت یک فایل هفت خطی با نام **output.txt** را برای ما بارگذاری کنید (جواب سوال اول در خط اول، سوال دوم در خط دوم، ... سوال هفتم در خط هفتم).
**_در صورتی که جواب سوالی را نمیدانید در سطر مربوطه ۱- وارد کنید._**
## نمونه خروجی
```
1000
70.43
cake,apple,coffee,meat
05XJ2SI7Z3KM,PZ2VNYRNH7UE,ZT6I3ZOEX9AP,IUMEKLUW51PE,HRZ5J6MERGJE
Friday
cake,apple,coffee,meat,tomato
("cake","potato")->("apple")|("coffee","soda")->("meat")
```
<details class="green">
<summary>
**توضیحات**
</summary>
در خط *i* ام جواب سوال *i* ام نوشته شدهاست.
</details>
<details class="yellow">
<summary>
**هشدار**
</summary>
اگر نام فایل شما و ساختار محتویات آن، همانند آنچه در صورت سوال ذکر شدهاست، نباشد؛ امتیازی از سوال دریافت نخواهید کرد.
</details>