ماشین می‌خره؟


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

شماره نمونه رنگ نوع لاکچری خریداری می‌شود؟
1 قرمز اسپورت خیر بله
2 قرمز اسپورت خیر خیر
3 قرمز اسپورت خیر بله
4 مشکی اسپورت خیر خیر
5 مشکی اسپورت بله بله
6 مشکی اسپورت بله بله
7 مشکی کلاسیک خیر خیر
8 قرمز اسپورت بله بله
9 زرد اسپورت بله خیر
10 زرد کلاسیک خیر بله
11 زرد اسپورت بله خیر
12 زرد کلاسیک بله بله
13 زرد کلاسیک خیر خیر

آقای وثوق برای پیاده‌سازی بیکار ننشسته و توی مطالعاتی که داشته به نظرش رسیده که روش naive bayes می‌تونه کمکش کنه. با استفاده از این دیتاها قراره، naive bayes آموزش داده بشه و آقای وثوق از شما میخواد که کد این naive bayes رو پیاده سازی کنید تا بدونه چه اتومبیل‌هایی بیاره که با احتمال بالاتری به محسن بفروشه؟

برای این کار، کدی که شما پیاده سازی می‌کنید باید یه تابع predict داشته باشه و مطابق با اون چه که در ادامه اومده عمل کنه. همچنین signature این تابع به شکل زیر است:

def predict(color, car_type, luxury)
Python

اجرای تابع🔗

تابع نوشته شده توسط شما با ۳ پارامتر رشته به ترتیب رنگ ماشین، نوع و لاکچری بودن ماشین اجرا می‌شود.

انواع رنگ ماشین: BLACK، RED و YELLOW

انواع نوع ماشین: SPORTو CLASSIC

لاکچری بودن: YES یا NO

خروجی تابع🔗

خروجی تابع شما باید شامل ۱ رشته باشد که در آن رشته YES در صورت خریداری ماشین و رشته NO برای عدم خریداری ماشین را برگرداند (return کند).

مثال🔗

اجرای ۱🔗

predict("RED", "SPORT", "NO")
Python

خروجی تابع در اجرای ۱🔗

YES
Plain text

اجرای ۲🔗

predict("BLACK" ,"CLASSIC", "YES")
Python

خروجی تابع در اجرای ۲🔗

YES
Plain text

نکات🔗

  • پاسخ خود را در یک فایل Zip که حتما شامل فایل ‍source.py که تابع predict در آن قرار دارد آپلود کنید.
  • نام فایل Zip اهمیت ندارد.
  • استفاده از لایبرری‌های ماشین لرنینگ در پایتون مجاز نیست. اما استفاده از لایبرری numpy و scipy مجاز است.