مکین لیرننگ - لائن رجسٹریشن
- پائینویس پائین اسپارک لینگ
- پائینویس نک پلاریم اور رجسٹر
رجسٹریشن
جب آپ متغیروں کے درمیان تعلقات کو تلاش کرتے ہیں تو، اصطلاح “رجسٹریشن” (regression) استعمال کی جاتی ہے。
میچین لارننگ اور اعداد استاتسٹیک میں، اس رابطہ کو مستقبل کے واقعات کا نتیجہ پیشگی کرنے کے لئے استعمال کیا جاتا ہے。
لائنی رجسٹریشن
لائنی رجسٹریشن اعداد و شمار کی تعلقات کا استعمال کرکے تمام اعداد و شمار کے درمیان ایک لائن درج کرتا ہے。
یہ لائن مستقبل کی قیمتیں پیش کرنے کے لئے استعمال کی جاسکتی ہے。

مашین لرن میں مستقبل کی پیشگویی بہت اہم ہے。
کام کا طریقہ
پائینٹ اور اسائی پی سیکولر ماحول میں کچھ متعدد طریق فراہم کی گئی ہیں جو کسی بھی اعداد و شمار کی تعلقات کو تلاش کرنے اور لائنی رجسٹریشن لائن درج کرنے کا کام کرسکتے ہیں۔ ہم اس کی کیسے استعمال کرتے ہیں، نہ کہ ریاضیاتی قوانین کا استعمال کرسکتے ہیں، اس کی دکھائی دیں گے。
ایک مثال میں، x کا اکسس کیا جاتا ہے، y کا اکسس رفتار کیا جاتا ہے۔ ہم 13 گاڑیوں کی عمر اور رفتار کو ریکارڈ کیا ہے جو گاڑیوں کی جمع میں گئی ہیں۔ اب، ہم جمع کی گئی اعداد و شمار کو لائنی رجسٹریشن کا استعمال کرسکتے ہیں یا نہیں دیکھیں:
مثال
ابتدا نقش میں نقش درج کریں:
matplotlib.pyplot کا استعمال کریں x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77,85,86] plt.scatter(x, y) plt.show()
نتائج:

مثال
درآمد کریں اسائی پی
اور لائنی رجسٹریشن لائن درج کریں:
matplotlib.pyplot کا استعمال کریں از اسکائیپی کو استفادہ کریں x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77,85,86] slope, intercept, r, p, std_err = stats.linregress(x, y) دفعہ myfunc(x): بازگشت slope * x + intercept mymodel = list(map(myfunc, x)) plt.scatter(x, y) plt.plot(x, mymodel) plt.show()
نتائج:

مثال کی توجیہ
ضروری ماڈیولوں کو درآمد کریں
matplotlib.pyplot کا استعمال کریں از اسکائیپی کو استفادہ کریں
x اور y کی قیمتیں کا ایک نمونہ بنائیں
x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77,85,86]
ایک طریق بنائیں جو لائنی رجسٹریشن کی کچھ اہم کلیدی قیمتیں واپس دیتا ہو
slope, intercept, r, p, std_err = stats.linregress(x, y)
ایک ایسا استعمال بنائیں slope
اور intercept
قیمتیں کی فونکشن نئی قیمتیں واپس دیتا ہے، یہ نئی قیمتیں واپس دیتا ہے جو x کی قیمتیں کی مرتبہ کی جائیگی اور y کی اعداد کی جگہ پر رکھی جائیں گی:
دفعہ myfunc(x): بازگشت slope * x + intercept
فونکشن کا استعمال کرکے x کی اعداد کی ہر قیمتی کو چلائیں۔ یہ ایک نئی اعداد کی تعداد بنتا ہے جس میں y کی اعداد نئی قیمتیں رکھی جاتی ہیں:
mymodel = list(map(myfunc, x))
مقابلہ نقش میں نقش درج کریں:
plt.scatter(x, y)
لائنی رجسٹریشن لائن درج کریں:
plt.plot(x, mymodel)
نقش میں دکھائیں:
plt.show()
R-Squared
مهم ہے کہ آپ کو جاننا چاہیئے کہ x اور y کی قیمتیں کس طرح مربوط ہیں، اگر کوئی تعلقات نہیں ہیں تو لائنی رجسٹریشن کو کوئی بھی چیز پیش نہیں کرسکتا。
اس تعلقات کو ایک نام 'ر س کوئی' (r-squared) سے میٹر کیا جاتا ہے。
ر س کوئی کا دامن 0 سے 1 تک ہوتا ہے، جس میں 0 غیر مربوط اور 1 100 فیصد مربوط کا مطلب ہوتا ہے。
پائینت اور اسائی پی سیکولر ماحول میں اس کا کام کرسکتے ہیں، آپ کو صرف x اور y کی قیمتیں اس کو فراہم کرنا ہوگا:
مثال
مجھ کی اعداد و شمار لائنی رجسٹریشن میں کیسا فٹ ہو؟
از اسکائیپی کو استفادہ کریں x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77,85,86] slope, intercept, r, p, std_err = stats.linregress(x, y) پرنٹ(آر)
نوٹ:نتائج -0.76 کے مطابق کچھ نچلی تعلقات موجود ہیں، لیکن یہ کچھ نہیں مکمل تعلقات ہیں، لیکن یہ نشان دہ کرتا ہے کہ ہم مستقبل کی پیشگویی کے لئے لائنی رجسٹریشن استعمال کرسکتے ہیں。
مستقبل کی قیمتیں پیشگویی کریں
اب، ہم جمع کی گئی معلومات کا استعمال مستقبل کی قیمتیں پیش کرنے کے لئے کرسکتے ہیں。
مثلاً: دس سال کی عمر کا ایک گاڑی کی رفتار پیشگویی کریں چاہیئے。
اس کے لئے، ہمیں اسی مثال میں کچھ چیزوں کی ضرورت ہے myfunc()
فونکشن:
دفعہ myfunc(x): بازگشت slope * x + intercept
مثال
10 سال کی عمر کا ایک گاڑی کی رفتار پیشگویی کریں:
از اسکائیپی کو استفادہ کریں x = [5,7,8,7,2,17,2,9,4,11,12,9,6] y = [99,86,87,88,111,86,103,87,94,78,77,85,86] slope, intercept, r, p, std_err = stats.linregress(x, y) دفعہ myfunc(x): بازگشت slope * x + intercept speed = myfunc(10) print(speed)
اس مثال کا پیشگی رفتار 85.6 ہے، ہم بھی نقش میں پڑھ سکتے ہیں:

بے کفایتی کا فٹ؟
آپنے پاس میں ایک مثال بنائیں جس میں لائنی رجسٹریشن مستقبل کی قیمتیں پیش کرنے کا بہترین طریقہ نہیں ہے。
مثال
مقادیر ان کا استعمال کیا جائے گا تاکہ خطی رگرسیون کی فٹ کی میزان بہت بد ہو:
matplotlib.pyplot کا استعمال کریں از اسکائیپی کو استفادہ کریں x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40] y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15] slope, intercept, r, p, std_err = stats.linregress(x, y) دفعہ myfunc(x): بازگشت slope * x + intercept mymodel = list(map(myfunc, x)) plt.scatter(x, y) plt.plot(x, mymodel) plt.show()
نتائج:

اور r-squared کا مرتبہ؟
مثال
آپ کو بہت کم r-squared کا مرتبہ ملنا چاہیے
نپیمپ اکورڈ از اسکائیپی کو استفادہ کریں x = [89,43,36,36,95,10,66,34,38,20,26,29,48,64,6,5,36,66,72,40] y = [21,46,3,35,67,95,53,72,58,10,26,34,90,33,38,20,56,2,47,15] slope, intercept, r, p, std_err = stats.linregress(x, y) پرنٹ(آر)
نتائج: 0.013 نشان میدهد که رابطه بسیار بد است و به ما میگوید که مجموعه دادههای این مورد مناسب برای رگرسیون خطی نیست.
- پائینویس پائین اسپارک لینگ
- پائینویس نک پلاریم اور رجسٹر