23 KiB
پائتھن اور سکِٹ لرن کے ساتھ ریگریشن ماڈلز کا آغاز کریں
خاکہ نوٹ از Tomomi Imura
لیکچر سے پہلے کا کوئز
یہ سبق R میں بھی دستیاب ہے!
تعارف
ان چار اسباق میں، آپ یہ سیکھیں گے کہ ریگریشن ماڈلز کیسے بنائے جاتے ہیں۔ ہم جلد ہی ان کے استعمال پر بات کریں گے۔ لیکن کچھ بھی کرنے سے پہلے، یہ یقینی بنائیں کہ آپ کے پاس اس عمل کو شروع کرنے کے لیے صحیح ٹولز موجود ہیں!
اس سبق میں، آپ یہ سیکھیں گے کہ:
- اپنے کمپیوٹر کو مقامی مشین لرننگ کے کاموں کے لیے ترتیب دیں۔
- جیوپیٹر نوٹ بکس کے ساتھ کام کریں۔
- سکِٹ لرن کا استعمال کریں، بشمول انسٹالیشن۔
- ایک عملی مشق کے ذریعے لکیری ریگریشن کو دریافت کریں۔
انسٹالیشنز اور ترتیب
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اپنے کمپیوٹر کو مشین لرننگ کے لیے ترتیب دینے کی ایک مختصر ویڈیو دیکھ سکیں۔
-
پائتھن انسٹال کریں۔ یہ یقینی بنائیں کہ پائتھن آپ کے کمپیوٹر پر انسٹال ہے۔ آپ ڈیٹا سائنس اور مشین لرننگ کے کئی کاموں کے لیے پائتھن استعمال کریں گے۔ زیادہ تر کمپیوٹر سسٹمز میں پہلے سے ہی پائتھن انسٹال ہوتا ہے۔ کچھ صارفین کے لیے سیٹ اپ کو آسان بنانے کے لیے پائتھن کوڈنگ پیکس بھی دستیاب ہیں۔
تاہم، پائتھن کے کچھ استعمالات کے لیے سافٹ ویئر کا ایک ورژن درکار ہوتا ہے، جبکہ دیگر کے لیے مختلف ورژن۔ اسی وجہ سے، ایک ورچوئل ماحول میں کام کرنا مفید ہے۔
-
ویژول اسٹوڈیو کوڈ انسٹال کریں۔ یہ یقینی بنائیں کہ ویژول اسٹوڈیو کوڈ آپ کے کمپیوٹر پر انسٹال ہے۔ ویژول اسٹوڈیو کوڈ انسٹال کرنے کے لیے ان ہدایات پر عمل کریں۔ اس کورس میں آپ ویژول اسٹوڈیو کوڈ میں پائتھن استعمال کریں گے، لہذا آپ یہ سیکھنا چاہیں گے کہ ویژول اسٹوڈیو کوڈ کو پائتھن کے لیے کیسے ترتیب دیا جائے۔
پائتھن کے ساتھ آرام دہ ہونے کے لیے اس لرن ماڈیولز کے مجموعے پر کام کریں۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ ویژول اسٹوڈیو کوڈ میں پائتھن استعمال کرنے کی ویڈیو دیکھ سکیں۔
-
سکِٹ لرن انسٹال کریں، ان ہدایات پر عمل کرتے ہوئے۔ چونکہ آپ کو یہ یقینی بنانا ہوگا کہ آپ پائتھن 3 استعمال کر رہے ہیں، اس لیے ورچوئل ماحول استعمال کرنے کی سفارش کی جاتی ہے۔ نوٹ کریں، اگر آپ یہ لائبریری M1 میک پر انسٹال کر رہے ہیں، تو اوپر دیے گئے صفحے پر خاص ہدایات موجود ہیں۔
-
جیوپیٹر نوٹ بک انسٹال کریں۔ آپ کو جیوپیٹر پیکج انسٹال کرنے کی ضرورت ہوگی۔
آپ کا مشین لرننگ تخلیقی ماحول
آپ نوٹ بکس استعمال کریں گے تاکہ اپنے پائتھن کوڈ کو تیار کریں اور مشین لرننگ ماڈلز بنائیں۔ یہ فائل کی قسم ڈیٹا سائنسدانوں کے لیے ایک عام ٹول ہے، اور انہیں ان کے لاحقہ یا توسیع .ipynb سے پہچانا جا سکتا ہے۔
نوٹ بکس ایک انٹرایکٹو ماحول فراہم کرتی ہیں جو ڈویلپر کو کوڈ لکھنے اور اس کے ارد گرد نوٹس اور دستاویزات شامل کرنے کی اجازت دیتی ہیں، جو تجرباتی یا تحقیقی منصوبوں کے لیے کافی مددگار ثابت ہوتی ہیں۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس مشق پر کام کرنے کی ایک مختصر ویڈیو دیکھ سکیں۔
مشق - نوٹ بک کے ساتھ کام کریں
اس فولڈر میں، آپ کو فائل notebook.ipynb ملے گی۔
-
notebook.ipynb کو ویژول اسٹوڈیو کوڈ میں کھولیں۔
ایک جیوپیٹر سرور پائتھن 3+ کے ساتھ شروع ہوگا۔ آپ کو نوٹ بک کے وہ حصے ملیں گے جو
runکیے جا سکتے ہیں، یعنی کوڈ کے ٹکڑے۔ آپ کوڈ بلاک کو اس آئیکن کو منتخب کرکے چلا سکتے ہیں جو پلے بٹن کی طرح نظر آتا ہے۔ -
mdآئیکن منتخب کریں اور تھوڑا سا مارک ڈاؤن شامل کریں، اور درج ذیل متن لکھیں # اپنی نوٹ بک میں خوش آمدید۔اس کے بعد کچھ پائتھن کوڈ شامل کریں۔
-
کوڈ بلاک میں print('hello notebook') لکھیں۔
-
کوڈ چلانے کے لیے تیر کا انتخاب کریں۔
آپ کو درج ذیل پرنٹ شدہ بیان نظر آنا چاہیے:
hello notebook
آپ اپنے کوڈ کے ساتھ تبصرے شامل کر کے نوٹ بک کو خود دستاویزی بنا سکتے ہیں۔
✅ ایک منٹ کے لیے سوچیں کہ ایک ویب ڈویلپر کے کام کرنے کے ماحول اور ایک ڈیٹا سائنسدان کے ماحول میں کتنا فرق ہے۔
سکِٹ لرن کے ساتھ کام شروع کریں
اب جب کہ پائتھن آپ کے مقامی ماحول میں ترتیب دیا گیا ہے، اور آپ جیوپیٹر نوٹ بکس کے ساتھ آرام دہ ہیں، آئیے سکِٹ لرن کے ساتھ بھی اتنے ہی آرام دہ ہو جائیں (اسے sci کے طور پر تلفظ کریں جیسے science)۔ سکِٹ لرن ایک وسیع API فراہم کرتا ہے تاکہ آپ کو مشین لرننگ کے کام انجام دینے میں مدد ملے۔
ان کی ویب سائٹ کے مطابق، "سکِٹ لرن ایک اوپن سورس مشین لرننگ لائبریری ہے جو سپروائزڈ اور اَن سپروائزڈ لرننگ کو سپورٹ کرتی ہے۔ یہ ماڈل فٹنگ، ڈیٹا پری پروسیسنگ، ماڈل سلیکشن اور ایویلیوایشن، اور دیگر کئی یوٹیلیٹیز کے لیے مختلف ٹولز بھی فراہم کرتی ہے۔"
اس کورس میں، آپ سکِٹ لرن اور دیگر ٹولز کا استعمال کریں گے تاکہ مشین لرننگ ماڈلز بنائیں اور 'روایتی مشین لرننگ' کے کام انجام دیں۔ ہم نے جان بوجھ کر نیورل نیٹ ورکس اور ڈیپ لرننگ کو شامل نہیں کیا، کیونکہ یہ ہمارے آنے والے 'AI for Beginners' نصاب میں بہتر طور پر شامل کیے گئے ہیں۔
سکِٹ لرن ماڈلز بنانے اور ان کا جائزہ لینے کو آسان بناتا ہے۔ یہ بنیادی طور پر عددی ڈیٹا کے استعمال پر مرکوز ہے اور سیکھنے کے ٹولز کے طور پر استعمال کے لیے کئی تیار شدہ ڈیٹاسیٹس شامل کرتا ہے۔ اس میں طلباء کے لیے آزمائش کے لیے پہلے سے تیار شدہ ماڈلز بھی شامل ہیں۔ آئیے پہلے سکِٹ لرن کے ساتھ کچھ بنیادی ڈیٹا کے ذریعے پہلے مشین لرننگ ماڈل کو دریافت کریں۔
مشق - اپنا پہلا سکِٹ لرن نوٹ بک
یہ ٹیوٹوریل سکِٹ لرن کی ویب سائٹ پر موجود لکیری ریگریشن کی مثال سے متاثر ہے۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس مشق پر کام کرنے کی ایک مختصر ویڈیو دیکھ سکیں۔
اس سبق سے منسلک notebook.ipynb فائل میں، تمام سیلز کو 'ٹریش کین' آئیکن دبا کر صاف کریں۔
اس سیکشن میں، آپ سکِٹ لرن میں سیکھنے کے مقاصد کے لیے شامل ایک چھوٹے ڈیٹاسیٹ کے ساتھ کام کریں گے جو ذیابیطس کے بارے میں ہے۔ تصور کریں کہ آپ ذیابیطس کے مریضوں کے لیے ایک علاج کی جانچ کرنا چاہتے ہیں۔ مشین لرننگ ماڈلز آپ کو یہ تعین کرنے میں مدد دے سکتے ہیں کہ کون سے مریض علاج کے لیے بہتر ردعمل دیں گے، متغیرات کے امتزاج کی بنیاد پر۔ یہاں تک کہ ایک بہت ہی بنیادی ریگریشن ماڈل، جب بصری بنایا جائے، متغیرات کے بارے میں معلومات دکھا سکتا ہے جو آپ کے نظریاتی کلینیکل ٹرائلز کو منظم کرنے میں مدد دے سکتی ہیں۔
✅ ریگریشن کے کئی طریقے ہیں، اور آپ کون سا منتخب کرتے ہیں یہ اس جواب پر منحصر ہے جس کی آپ تلاش کر رہے ہیں۔ اگر آپ کسی دیے گئے عمر کے شخص کے ممکنہ قد کی پیش گوئی کرنا چاہتے ہیں، تو آپ لکیری ریگریشن استعمال کریں گے، کیونکہ آپ ایک عددی قدر تلاش کر رہے ہیں۔ اگر آپ یہ دریافت کرنا چاہتے ہیں کہ آیا کسی قسم کے کھانے کو ویگن سمجھا جانا چاہیے یا نہیں، تو آپ ایک زمرہ تفویض تلاش کر رہے ہیں، لہذا آپ لاجسٹک ریگریشن استعمال کریں گے۔ آپ بعد میں لاجسٹک ریگریشن کے بارے میں مزید سیکھیں گے۔ ڈیٹا سے کچھ سوالات کے بارے میں سوچیں، اور ان میں سے کون سا طریقہ زیادہ مناسب ہوگا۔
آئیے اس کام پر شروع کریں۔
لائبریریاں درآمد کریں
اس کام کے لیے ہم کچھ لائبریریاں درآمد کریں گے:
- matplotlib۔ یہ ایک مفید گرافنگ ٹول ہے اور ہم اسے لائن گراف بنانے کے لیے استعمال کریں گے۔
- numpy۔ numpy پائتھن میں عددی ڈیٹا کو سنبھالنے کے لیے ایک مفید لائبریری ہے۔
- sklearn۔ یہ سکِٹ لرن لائبریری ہے۔
اپنے کاموں میں مدد کے لیے کچھ لائبریریاں درآمد کریں۔
-
درج ذیل کوڈ لکھ کر درآمدات شامل کریں:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionاوپر آپ
matplotlib،numpyاورsklearnسےdatasets،linear_modelاورmodel_selectionدرآمد کر رہے ہیں۔model_selectionڈیٹا کو تربیتی اور ٹیسٹ سیٹس میں تقسیم کرنے کے لیے استعمال ہوتا ہے۔
ذیابیطس ڈیٹاسیٹ
بلٹ ان ذیابیطس ڈیٹاسیٹ میں ذیابیطس کے ارد گرد 442 نمونے شامل ہیں، جن میں 10 فیچر متغیرات ہیں، جن میں سے کچھ یہ ہیں:
- عمر: سالوں میں عمر
- bmi: باڈی ماس انڈیکس
- bp: اوسط بلڈ پریشر
- s1 tc: ٹی سیلز (سفید خون کے خلیوں کی ایک قسم)
✅ اس ڈیٹاسیٹ میں ذیابیطس کے ارد گرد تحقیق کے لیے ایک اہم فیچر متغیر کے طور پر 'جنس' کا تصور شامل ہے۔ بہت سے طبی ڈیٹاسیٹس میں اس قسم کی بائنری درجہ بندی شامل ہوتی ہے۔ اس بارے میں تھوڑا سوچیں کہ اس طرح کی درجہ بندی آبادی کے کچھ حصوں کو علاج سے کیسے خارج کر سکتی ہے۔
اب، X اور y ڈیٹا لوڈ کریں۔
🎓 یاد رکھیں، یہ سپروائزڈ لرننگ ہے، اور ہمیں ایک نامزد 'y' ہدف کی ضرورت ہے۔
ایک نئے کوڈ سیل میں، load_diabetes() کو کال کر کے ذیابیطس ڈیٹاسیٹ لوڈ کریں۔ ان پٹ return_X_y=True اشارہ دیتا ہے کہ X ایک ڈیٹا میٹرکس ہوگا، اور y ریگریشن ہدف ہوگا۔
-
ڈیٹا میٹرکس کی شکل اور اس کے پہلے عنصر کو دکھانے کے لیے کچھ پرنٹ کمانڈز شامل کریں:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])جو آپ کو جواب کے طور پر مل رہا ہے، وہ ایک ٹپل ہے۔ آپ جو کر رہے ہیں وہ ٹپل کی دو پہلی قدروں کو بالترتیب
Xاورyکو تفویض کرنا ہے۔ ٹپلز کے بارے میں مزید جانیں۔آپ دیکھ سکتے ہیں کہ اس ڈیٹا میں 442 آئٹمز ہیں جو 10 عناصر کی صفوں میں ترتیب دیے گئے ہیں:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ ڈیٹا اور ریگریشن ہدف کے درمیان تعلق کے بارے میں سوچیں۔ لکیری ریگریشن فیچر X اور ہدف متغیر y کے درمیان تعلقات کی پیش گوئی کرتا ہے۔ کیا آپ دستاویزات میں ذیابیطس ڈیٹاسیٹ کے لیے ہدف تلاش کر سکتے ہیں؟ یہ ڈیٹاسیٹ کیا ظاہر کر رہا ہے، دیے گئے ہدف کے ساتھ؟
-
اگلا، اس ڈیٹاسیٹ کے ایک حصے کو منتخب کریں تاکہ اسے پلاٹ کیا جا سکے، ڈیٹاسیٹ کے تیسرے کالم کو منتخب کر کے۔ آپ یہ
:آپریٹر کا استعمال کرتے ہوئے تمام قطاروں کو منتخب کر کے، اور پھر انڈیکس (2) کا استعمال کرتے ہوئے تیسرے کالم کو منتخب کر کے کر سکتے ہیں۔ آپ ڈیٹا کو 2D صف میں تبدیل کرنے کے لیےreshape(n_rows, n_columns)کا استعمال کرتے ہوئے بھی دوبارہ شکل دے سکتے ہیں - جیسا کہ پلاٹنگ کے لیے درکار ہے۔ اگر ایک پیرامیٹر -1 ہے، تو متعلقہ جہت خود بخود حساب کی جاتی ہے۔X = X[:, 2] X = X.reshape((-1,1))✅ کسی بھی وقت، ڈیٹا کو اس کی شکل چیک کرنے کے لیے پرنٹ کریں۔
-
اب جب کہ آپ کے پاس ڈیٹا پلاٹنگ کے لیے تیار ہے، آپ دیکھ سکتے ہیں کہ آیا کوئی مشین اس ڈیٹاسیٹ میں نمبروں کے درمیان منطقی تقسیم کا تعین کرنے میں مدد کر سکتی ہے۔ ایسا کرنے کے لیے، آپ کو ڈیٹا (X) اور ہدف (y) دونوں کو ٹیسٹ اور تربیتی سیٹس میں تقسیم کرنے کی ضرورت ہے۔ سکِٹ لرن کے پاس یہ کرنے کا ایک آسان طریقہ ہے؛ آپ اپنے ٹیسٹ ڈیٹا کو کسی دیے گئے پوائنٹ پر تقسیم کر سکتے ہیں۔
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
اب آپ اپنے ماڈل کو تربیت دینے کے لیے تیار ہیں! لکیری ریگریشن ماڈل لوڈ کریں اور اپنے X اور y تربیتی سیٹس کے ساتھ اسے
model.fit()کا استعمال کرتے ہوئے تربیت دیں:model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()ایک فنکشن ہے جو آپ کو کئی مشین لرننگ لائبریریوں جیسے TensorFlow میں نظر آئے گا۔ -
پھر، ٹیسٹ ڈیٹا کا استعمال کرتے ہوئے ایک پیش گوئی بنائیں،
predict()فنکشن کا استعمال کرتے ہوئے۔ یہ ڈیٹا گروپس کے درمیان لائن کھینچنے کے لیے استعمال کیا جائے گا۔y_pred = model.predict(X_test) -
اب وقت ہے کہ ڈیٹا کو پلا ✅ سوچیں کہ یہاں کیا ہو رہا ہے۔ ایک سیدھی لکیر بہت سے چھوٹے ڈیٹا پوائنٹس کے درمیان سے گزر رہی ہے، لیکن یہ اصل میں کیا کر رہی ہے؟ کیا آپ دیکھ سکتے ہیں کہ آپ اس لکیر کو کیسے استعمال کر سکتے ہیں تاکہ پیش گوئی کی جا سکے کہ ایک نیا، غیر دیکھے گئے ڈیٹا پوائنٹ کو پلاٹ کے y محور کے تعلق میں کہاں ہونا چاہیے؟ اس ماڈل کے عملی استعمال کو الفاظ میں بیان کرنے کی کوشش کریں۔
مبارک ہو، آپ نے اپنا پہلا لینیئر ریگریشن ماڈل بنایا، اس کے ساتھ ایک پیش گوئی کی، اور اسے ایک پلاٹ میں دکھایا!
🚀چیلنج
اس ڈیٹا سیٹ سے ایک مختلف متغیر کو پلاٹ کریں۔ اشارہ: اس لائن کو ایڈٹ کریں: X = X[:,2]۔ اس ڈیٹا سیٹ کے ہدف کو دیکھتے ہوئے، آپ ذیابیطس کی بیماری کے ارتقاء کے بارے میں کیا دریافت کر سکتے ہیں؟
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
اس ٹیوٹوریل میں، آپ نے سادہ لینیئر ریگریشن کے ساتھ کام کیا، نہ کہ یونیویریٹ یا ملٹیپل لینیئر ریگریشن کے ساتھ۔ ان طریقوں کے درمیان فرق کے بارے میں تھوڑا پڑھیں، یا اس ویڈیو کو دیکھیں۔
ریگریشن کے تصور کے بارے میں مزید پڑھیں اور سوچیں کہ اس تکنیک کے ذریعے کس قسم کے سوالات کے جواب دیے جا سکتے ہیں۔ اپنی سمجھ کو گہرا کرنے کے لیے یہ ٹیوٹوریل لیں۔
اسائنمنٹ
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی مقامی زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔





