مکین لرننگ - تربیت/آزمون

ماڈل کا جائزہ لینا

مکین سیکس میں، ہم ایسے ماڈل تیار کرتے ہیں جو کچھ واقعات کے نتائج کو پیش گو کرتے ہیں، جیسا کہ پچھلے فصلی میں جب ہم وزن اور ایندھن کی کلاسیفائزیشن کو جانتے تھے، آٹوموبائل کی کاربن ڈائی آکسائڈ کی بھرپائی کو پیش گو کرتے تھے۔

ماڈل کی دقت کی اندازہ کاری کیلئے، ہم ایک نامزد کیاجاتا ہے جسے تربیت/ٹیسٹ کہتے ہیں。

تربیت/ٹیسٹ کیا ہے؟

تربیت/ٹیسٹ یہ ایک ماڈل کی دقت کی اندازہ کاری کا طریقہ ہے。

یہ لیکن کیونکہ ہم اعداد و شمارش کو دو گروپوں میں تقسیم کرتے ہیں: تربیتی گروپ اور ٹیسٹ گروپ۔

80 فیصد تربیت کیلئے استعمال کی جاتی ہیں، 20 فیصد ٹیسٹ کیلئے استعمال کی جاتی ہیں。

آپ میں میں ماڈل کو تربیت داسکتے ہیں。

آپ میں میں ماڈل کو ٹیسٹ کرسکتے ہیں。

ماڈل کو تربیت دینا یعنی ماڈل کی تشکیل کرنا ہوتا ہے。

ماڈل کا ٹیسٹ کرنا یعنی ماڈل کی دقت کا ٹیسٹ کرنا ہوتا ہے。

اعداد و شمارش سے شروع کریں

تست کئے جانے والے اعداد و شمارش سے شروع کریں。

ہماری اعداد و شمارش کا مجموعہ شاپ میں 100 مشتریوں اور ان کی خریداری عادتوں کو دکھاتا ہے。

مثال

نپئیوایز اپرٹ کریں
import matplotlib.pyplot as plt
نپئیوایز_رندم_سیڈ(2)
ایکس = نپئیوایز(نرمل(3، 1، 100))
ی = نپئیوایز(نرمل(150، 40، 100)) / ایکس
plt.scatter(x, y)
plt.show()

نتیجه:

محور x دقیقه‌های قبل از خرید را نشان می‌دهد.

محور y مقدار پولی است که در خرید هزینه شده است.


مثال چلائیں

تقسیم آموزشی/تست

مجموعه داده‌های آموزشی باید 80٪ انتخاب تصادفی از داده‌های اصلی باشد.

مجموعه داده‌های تست باید 20٪ باقی‌مانده باشد.

ٹرین_ایکس = ایکس[:80]
ٹرین_ی = ی[:80]
ٹیسٹ_ایکس = ایکس[80:]
ٹیسٹ_ی = ی[80:]

نمایش مجموعه داده‌های آموزشی

نمایش نمودار گره‌های مشابه با مجموعه داده‌های آموزشی:

مثال

plt.scatter(train_x, train_y)
plt.show()

نتیجه:

مجموعه داده‌های تست نیز مانند مجموعه داده‌های اصلی به نظر می‌رسد، بنابراین به نظر می‌رسد که انتخاب معقولی است:


مثال چلائیں

نمایش مجموعه داده‌های تست

برای اطمینان از اینکه مجموعه داده‌های تست کاملاً متفاوت نیست، باید به مجموعه داده‌های تست نیز نگاه کنیم.

مثال

plt.scatter(test_x, test_y)
plt.show()

نتیجه:

مجموعه داده‌های تست نیز مانند مجموعه داده‌های اصلی به نظر می‌رسد:


مثال چلائیں

تطابق مجموعه داده‌ها

مجموعه داده‌ها چگونه است؟ من فکر می‌کنم بهترین تطابق چندضلعی است، بنابراین بیایید یک خط چندضلعی رسم کنیم.

برای رسم خطی که از نقاط داده عبور می‌کند، ما از مودول matplotlib استفاده می‌کنیم plott() روش:

مثال

خط چندضلعی عبور از نقاط داده را رسم کنید:

نپئیوایز اپرٹ کریں
import matplotlib.pyplot as plt
نپئیوایز_رندم_سیڈ(2)
ایکس = نپئیوایز(نرمل(3، 1، 100))
ی = نپئیوایز(نرمل(150، 40، 100)) / ایکس
ٹرین_ایکس = ایکس[:80]
ٹرین_ی = ی[:80]
ٹیسٹ_ایکس = ایکس[80:]
ٹیسٹ_ی = ی[80:]
مائیموڈل = نپئیوایز(پولی فٹ(ٹرین_ایکس، ٹرین_ی، 4))
myline = numpy.linspace(0, 6, 100)
plt.scatter(train_x, train_y)
plt.plot(myline, mymodel(myline))
plt.show()

نتیجه:


مثال چلائیں

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

اما R-squared score چیست؟ R-squared score به خوبی نشان‌دهنده میزان تطابق مجموعه داده‌های من با مدل است.

R2

آیا R2 یا R مربع (R-squared) یادتان می‌آید؟

این میزان رابطه بین محور x و y را اندازه‌گیری می‌کند، که در محدوده 0 تا 1 قرار دارد، جایی که 0 نشان‌دهنده عدم رابطه و 1 نشان‌دهنده رابطه کامل است.

مодуل sklearn یک نام دارد rs_score() این روش، که به ما کمک می‌کند این رابطه را پیدا کنیم.

در اینجا، ما می‌خواهیم میزان زمانی که مشتری در فروشگاه می‌ماند و مقدار پولی که خرج می‌کند را با هم مقایسه کنیم.

مثال

چگونه داده‌های آموزشی ما در بهینه‌سازی چندضلعی چگونه هستند؟

نپئیوایز اپرٹ کریں
سکلئیکن میٹریکس ر2_score
نپئیوایز_رندم_سیڈ(2)
ایکس = نپئیوایز(نرمل(3، 1، 100))
ی = نپئیوایز(نرمل(150، 40، 100)) / ایکس
ٹرین_ایکس = ایکس[:80]
ٹرین_ی = ی[:80]
ٹیسٹ_ایکس = ایکس[80:]
ٹیسٹ_ی = ی[80:]
مائیموڈل = نپئیوایز(پولی فٹ(ٹرین_ایکس، ٹرین_ی، 4))
r2 = r2_score(train_y, mymodel(train_x))
پرنٹ(آر2)

مثال چلائیں

تعلیمات:نتیجه 0.799 نشان می‌دهد که رابطه خوبی وجود دارد.

مقدار تست معرفی می‌شود

حالا، حداقل در مورد داده‌های آموزشی، ما یک مدل خوب ساخته‌ایم.

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

مثال

آئیں، ہم نئی دفعات کیلئے تیسٹ دیتا استعمال کرتے ہوئے آر2 کا اندازا لگائیں:

نپئیوایز اپرٹ کریں
سکلئیکن میٹریکس ر2_score
نپئیوایز_رندم_سیڈ(2)
ایکس = نپئیوایز(نرمل(3، 1، 100))
ی = نپئیوایز(نرمل(150، 40، 100)) / ایکس
ٹرین_ایکس = ایکس[:80]
ٹرین_ی = ی[:80]
ٹیسٹ_ایکس = ایکس[80:]
ٹیسٹ_ی = ی[80:]
مائیموڈل = نپئیوایز(پولی فٹ(ٹرین_ایکس، ٹرین_ی، 4))
آر2 = ر2_score(ٹیسٹ_ی، مائیموڈل(ٹیسٹ_ایکس))
پرنٹ(آر2)

مثال چلائیں

تعلیمات:نتیجہ 0.809 اس بات کو ظاہر کرتا ہے کہ اس ماڈل کو ٹیسٹ سیٹ میں بھی مناسب ہے، اور ہم اس ماڈل کو مستقبل کی دفعات کو پیشگویی کرنے کیلئے استعمال کرسکتے ہیں۔

پیشگویی کا مقصد

اب ہم نے اپنے ماڈل کی صحت مندگی پتہ لگایا ہے، اب ہم نئی کی دفعات کو پیشگویی شروع کرسکتے ہیں۔

مثال

اگر خریدار 5 منٹ کا عرصہ کا استعمال کردار، تو وہ کتنا صرف کردار کریں گا؟

پرنٹ(مائیموڈل(5)))

مثال چلائیں

اس مثال کا اندازا 22.88 ڈالر کا صرف کردار، جس کا نمودار سے مطابقت رکھتا ہے: