در این نوشته می خوام درباره Train/Test صحبت کنم.
یکسری روش هایی هستند که کارشون پیش بینی نتیجه بعضی از اتفاقات هست. در حقیقت برای اینکه بفهمیم مدلی که بهش رسیدیم به اندازه کافی خوب هست یا نه، می تونیم از روشی که به نام Train/Test نامیده میشه استفاده کنیم.
متدی هست که دقت یا accuracy مدلی که بهش رسیدیم اندازه گیری می کنه.
بخاطر این که دیتاست رو به دو تکه تقسیم می کنید :
مثلا با 70 درصد داده ها برای یادگیری یا train اختصاص میابه و 30 درصد برای تست استفاده می شه.
در حقیقت مدلمون، میشه train
و ارزیابی یا تست مدل، میشه test
بذارید مثالی بزنم :
دیتاستی داریم که درباره اطلاعات صد تا مشتری هست (اعداد به صورت تصادفی انتخاب شده):
محور y نشون می ده که چه مقدار پول برای خرید کالا صرف شده
محور x هم زمان خرید رو نشون می ده
مثلا من رفتم یه بیسکوییت خریدم و مبلغش شده 20 هزار تومن و مدت زمانی که برای این خرید تو فروشگاه گذاشتم 3 دقیقه بوده!
الان می خوایم train و test رو مشخص کنید. (به نسبت 70 به 30 تقسیم کردم)
اگه موافق باشید، بیایین دیتاست train مونو ببینیم.
اونو با scatter plot می شه نشون داد :
بیایید مجموعه تست رو نمایش بدید.
به نظر من بهترین چیز برای نشون دادن fit ، یک رگرسیون چند جمله ای است ، بنابراین اجازه دهید یک خط از رگرسیون چند جمله ای ترسیم کنیم.
برای ترسیم خط، از متد ()plot از کتابخونه matplotlib استفاده شده :
حتی اگر بخواهیم مقادیر خارج از دیتاست را پیش بینی کنیم ، نتایج عجیبی به ما می دهد! مثلا : این خط نشان می دهد که مشتری در مدت زمان 6 دقیقه در فروشگاه می تواند 200 دلار خرید کند. که احتمالا این به overfitting بر می گرده.
اما مدلمون از نظر محاسبه R-squared چطوره؟
این امتیاز شاخص خوبی هست برای نشان دادن این که چه قدر داده های من مناسب انتخاب شده اند؟
درحقیقت میاد ارتباط بین محور x و محور y رو اندازه گیری می کنه و مقدارش بین صفر و یک هست. جایی که صفره یعنی هیچ ارتباطی نداریم و جایی که 1 هست یعنی کاملا مرتبط هست.
ماژول sklearn یک متدی به نام ()rs_score داره که به ما کمک می کند تا این رابطه را پیدا کنیم.
در این حالت می خوایم رابطه بین دقایقی را که مشتری در مغازه می مونه و میزان پولی که خرج می کنه ، اندازه گیری کنیم.
با چه حالتی دیتا train من در یک رگرسیون چند جمله ای fit میشه؟ (نتیجه آیا بده؟ خوبه؟ چیه؟)
عددی که نتیجه نوشته می شه نشون می ده که رابطه خوبی وجود داره.
الان می خوایم مدلی که در بالا درست کردیم رو تست کنیم :
می خوایم R2 رو برای این دیتاست test هم محاسبه کنیم :
نتیجه 0.809 نشان می دهد که مدل مجموعه تست fit هست و ما اطمینان داریم که می توانیم از مدل برای پیش بینی مقادیر استفاده کنیم.
اکنون که ثابت کردیم که مدل ما خوب است ، می توانیم مقادیر جدید را پیش بینی کنیم.
مشتری بعد از 5 دقیقه موندن توی فروشگاه چقدر پول خرج خواهد کرد؟
همون طور که در نمودار زیر می بینید این مقدار خرج با نمودار زیر تطابق داره :
خب به پایان این نوشته رسیدیم. امیدوارم براتون مفید بوده باشه.
از همراهیتون صمیمانه ممنونم ...