|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| solution | 8 months ago | |
| README.md | 3 weeks ago | |
| assignment.md | 8 months ago | |
| notebook.ipynb | 1 year ago | |
README.md
ریگریشن ماڈلز کے لئے پائتھون اور سکی کِٹ-لرن کے ساتھ شروع کریں
اسکیچ نوٹ از ٹومومی امورہ
پری لیکچر کوئز
یہ سبق R میں بھی دستیاب ہے!
تعارف
ان چار اسباق میں، آپ سیکھیں گے کہ کیسے ریگریشن ماڈلز بنائے جاتے ہیں۔ ہم جلد ہی بتائیں گے کہ یہ کس لیے ہیں۔ لیکن کچھ بھی کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس شروع کرنے کے لیے صحیح ابزار موجود ہیں!
اس سبق میں، آپ سیکھیں گے کہ کیسے:
- اپنے کمپیوٹر کو مقامی مشین لرننگ کاموں کے لیے ترتیب دیں۔
- Jupyter نوٹس بک کے ساتھ کام کریں۔
- Scikit-learn کا استعمال کریں، بشمول تنصیب۔
- ایک عملی مشق کے ذریعے لینئر ریگریشن کو دریافت کریں۔
تنصیبات اور ترتیبات
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ آپ کے کمپیوٹر کو مشین لرننگ کے لیے ترتیب دینے پر ایک مختصر ویڈیو دیکھیں۔
-
پائتھون انسٹال کریں۔ یقینی بنائیں کہ Python آپ کے کمپیوٹر پر انسٹال ہے۔ آپ بہت سے ڈیٹا سائنس اور مشین لرننگ کاموں میں Python استعمال کریں گے۔ زیادہ تر کمپیوٹر سسٹمز پہلے سے Python انسٹال رکھتے ہیں۔ کچھ مفید Python کوڈنگ پیکس بھی دستیاب ہیں جو کچھ صارفین کے لیے سیٹ اپ آسان کرتے ہیں۔
تاہم، Python کے کچھ استعمالات کو سافٹ ویئر کے ایک ورزن کی ضرورت ہوتی ہے، جبکہ دوسروں کو مختلف ورزن کی۔ اس وجہ سے، ورچوئل ماحول کے اندر کام کرنا مفید ہے۔
-
Visual Studio Code انسٹال کریں۔ یقینی بنائیں کہ آپ کے کمپیوٹر پر Visual Studio Code انسٹال ہے۔ بنیادی تنصیب کے لیے یہ ہدایات ملاحظہ کریں: Visual Studio Code انسٹال کریں۔ آپ اس کورس میں Visual Studio Code میں Python استعمال کریں گے، تو آپ شاید جاننا چاہیں کہ Visual Studio Code کو Python کے لیے کس طرح ترتیب دیں۔
Python میں مہارت حاصل کریں اس Learn modules کے ذریعے کام کرکے
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ ویڈیو دیکھیں: VS Code میں Python کا استعمال۔
-
Scikit-learn انسٹال کریں، ان ہدایات پر عمل کرتے ہوئے۔ چونکہ آپ کو Python 3 استعمال کرنا ہے، اس لیے ورچوئل ماحول استعمال کرنے کی سفارش کی جاتی ہے۔ نوٹ کریں، اگر آپ M1 Mac پر یہ لائبریری نصب کر رہے ہیں، تو اوپر دیے گئے صفحے پر خاص ہدایات ہیں۔
-
Jupyter Notebook انسٹال کریں۔ آپ کو Jupyter پیکج انسٹال کرنا ہوگا۔
آپ کا مشین لرننگ آتھرنگ ماحول
آپ Python کوڈ لکھنے اور مشین لرننگ ماڈلز بنانے کے لیے نوٹس بک استعمال کریں گے۔ یہ فائل کی قسم ڈیٹا سائنٹسٹ کے لیے عام آلہ ہے، اور اس کی پہچان پسوند .ipynb سے ہوتی ہے۔
نوٹس بک ایک تعاملی ماحول ہے جو ڈویلپر کو کوڈ لکھنے کے ساتھ ساتھ نوٹس اور دستاویزات شامل کرنے کی اجازت دیتا ہے جو تجرباتی یا تحقیقی منصوبوں کے لیے بہت مددگار ہے۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس مشق کے لیے ایک مختصر ویڈیو دیکھیں۔
مشق - نوٹس بک کے ساتھ کام کریں
اس فولڈر میں، آپ کو notebook.ipynb فائل ملے گی۔
-
Visual Studio Code میں notebook.ipynb کھولیں۔
ایک Jupyter سرور Python 3+ کے ساتھ شروع ہوگا۔ آپ نوٹس بک کے ان حصوں کو پائیں گے جنہیں آپ
runکر سکتے ہیں، یعنی کوڈ کے ٹکڑے۔ آپ کوڈ بلاک چلا سکتے ہیں، جس کے لیے پلے بٹن کی طرح ایک آئیکن منتخب کریں۔ -
mdآئیکن کو منتخب کریں اور کچھ مارک ڈاؤن شامل کریں، اور درج ذیل متن لکھیں # آپ کی نوٹس بک میں خوش آمدید۔پھر، کچھ Python کوڈ شامل کریں۔
-
کوڈ بلاک میں print('hello notebook') ٹائپ کریں۔
-
کوڈ چلانے کے لیے تیر پر کلک کریں۔
آپ کو یہ پرنٹ شدہ بیان نظر آئے گا:
hello notebook
آپ اپنے کوڈ کے ساتھ تبصرے بھی شامل کر کے نوٹس بک خود دستاویزی بنا سکتے ہیں۔
✅ ایک منٹ کے لیے سوچیں کہ ویب ڈویلپر کا کام کرنے کا ماحول اور ڈیٹا سائنٹسٹ کا ماحول کتنا مختلف ہو سکتا ہے۔
Scikit-learn کے ساتھ شروع کریں
اب جب کہ Python آپ کے مقامی ماحول میں سیٹ اپ ہے، اور آپ Jupyter نوٹس بکس سے واقف ہیں، آئیے Scikit-learn سے بھی ویسا ہی تعارف حاصل کریں (اسے 'sci' کہا جاتا ہے جیسا 'science' میں ہوتا ہے)۔ Scikit-learn آپ کو مشین لرننگ کے کام انجام دینے میں مدد کے لیے وسیع API فراہم کرتا ہے۔
ان کی ویب سائٹ کے مطابق، "Scikit-learn ایک اوپن سورس مشین لرننگ لائبریری ہے جو سپروائزڈ اور ان سپروائزڈ لرننگ دونوں کی حمایت کرتی ہے۔ یہ ماڈل فٹنگ، ڈیٹا پری پروسیسنگ، ماڈل کے انتخاب اور جائزہ، اور دیگر کئی مفید آلات بھی فراہم کرتی ہے۔"
اس کورس میں آپ مشین لرننگ ماڈلز بنانے کے لیے Scikit-learn اور دیگر آلات استعمال کریں گے تاکہ ہم 'روایتی مشین لرننگ' کے کام انجام دے سکیں۔ ہم نے جان بوجھ کے نیورل نیٹورکس اور ڈیپ لرننگ کو شامل نہیں کیا کیوں کہ وہ ہمارے آنے والے 'AI for Beginners' نصاب میں بہتر طور پر کور کیے جائیں گے۔
Scikit-learn ماڈلز بنانا اور ان کی جانچ کرنا آسان بناتا ہے۔ یہ بنیادی طور پر عددی ڈیٹا پر مرکوز ہے اور استعمال کے لیے کئی تیار ڈیٹاسیٹس بھی رکھتا ہے۔ اس کے ساتھ تیاری شدہ ماڈلز بھی شامل ہیں تاکہ طلباء آزما سکیں۔ آئیے پیکیجڈ ڈیٹا لوڈ کرنے اور بلٹ ان estimator استعمال کرنے کا عمل دیکھتے ہیں تاکہ Scikit-learn کے ساتھ اپنا پہلا مشین لرننگ ماڈل بنائیں۔
مشق - آپ کی پہلی Scikit-learn نوٹس بک
یہ سبق Scikit-learn کی ویب سائٹ پر موجود لینئر ریگریشن مثال سے متاثر ہے۔
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس مشق کا ویڈیو دیکھیں۔
notebook.ipynb فائل میں جڑی ہوئی اس سبق سے، تمام سیلز کو 'trash can' آئیکون دبا کر صاف کریں۔
اس حصے میں، آپ Scikit-learn میں تعلیمی مقصد کے لیے موجود ذیابیطس (diabetes) کے چھوٹے ڈیٹاسیٹ کے ساتھ کام کریں گے۔ تصور کریں کہ آپ ذیابیطس مریضوں کے علاج کی جانچ کرنا چاہتے ہیں۔ مشین لرننگ ماڈل آپ کو یہ تعین کرنے میں مدد دے سکتے ہیں کہ کون سے مریض علاج کے بہتر جواب دیں گے، مختلف متغیرات کے امتزاج پر مبنی۔ یہاں تک کہ ایک سادہ ریگریشن ماڈل بھی، جب بصری شکل میں دکھایا جائے، تو آپ کو ان متغیرات کی معلومات دے سکتا ہے جو آپ کے نظریاتی کلینکل ٹرائلز کی ترتیب میں مدد دے گا۔
✅ ریگریشن کے کئی اقسام ہیں، اور آپ کون سی منتخب کرتے ہیں یہ اس جواب پر منحصر ہے جو آپ چاہتے ہیں۔ اگر آپ کسی شخص کی دی گئی عمر کے لیے ممکنہ قد کی پیش گوئی کرنا چاہتے ہیں تو آپ لینئر ریگریشن استعمال کریں گے کیونکہ آپ ایک عددی قیمت تلاش کر رہے ہیں۔ اگر آپ یہ معلوم کرنا چاہتے ہیں کہ کسی کھانے کی قسم ویگن کے زمرے میں آتی ہے یا نہیں، تو آپ زمرہ بندی کا تعین کر رہے ہیں، اس لیے آپ لوگسٹک ریگریشن استعمال کریں گے۔ آپ مزید بعد میں لوگسٹک ریگریشن کے بارے میں سیکھیں گے۔ کچھ سوالات کے بارے میں سوچیں جو آپ ڈیٹا سے پوچھ سکتے ہیں، اور کون سا طریقہ زیادہ مناسب ہوگا۔
آئیں اس کام کو شروع کریں۔
لائبریریاں درآمد کریں
اس کام کے لیے ہم کچھ لائبریریاں درآمد کریں گے:
- matplotlib۔ یہ ایک مفید گرافنگ آلہ ہے اور ہم اسے لائن پلاٹ بنانے کے لیے استعمال کریں گے۔
- numpy۔ numpy Python میں عددی ڈیٹا سنبھالنے کے لیے ایک مفید لائبریری ہے۔
- sklearn۔ یہ Scikit-learn کی لائبریری ہے۔
اپنے کام کو آسان بنانے کے لیے کچھ لائبریریاں درآمد کریں۔
-
درآمدات شامل کرنے کے لیے یہ کوڈ ٹائپ کریں:
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 فیچر ویریبلز ہیں، جن میں سے کچھ یہ ہیں:
- عمر: سالوں میں عمر
- بی ایم آئی: باڈی ماس انڈیکس
- بی پی: اوسط بلڈ پریشر
- 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 عناصر کے arrays میں شکل دی گئی ہیں:
(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) کے ذریعے تیسری کالم منتخب کریں۔ آپreshape(n_rows, n_columns)استعمال کر کے ڈیٹا کو 2D ارے کی شکل دے سکتے ہیں، جیسا کہ پلاٹنگ کے لیے ضروری ہے۔ اگر ایک پیرامیٹر -1 ہے تو متعلقہ سمت خود بخود حساب کی جاتی ہے۔X = X[:, 2] X = X.reshape((-1,1))✅ کسی بھی وقت ڈیٹا کو پرنٹ کر کے اس کی شکل چیک کریں۔
-
اب جب آپ کے پاس پلاٹ کرنے کے لیے ڈیٹا تیار ہے، دیکھیں کہ مشین اس ڈیٹاسیٹ کے نمبروں کے درمیان منطقی تقسیم کا تعین کر سکتی ہے یا نہیں۔ ایسا کرنے کے لیے، آپ کو ڈیٹا (X) اور ہدف (y) دونوں کو ٹیسٹ اور تربیتی سیٹوں میں تقسیم کرنا ہوگا۔ Scikit-learn اس کا آسان طریقہ فراہم کرتا ہے؛ آپ اپنے ٹیسٹ ڈیٹا کو ایک مخصوص نقطہ پر تقسیم کر سکتے ہیں۔
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) -
اب ڈیٹا کو پلاٹ میں دکھانے کا وقت ہے۔ Matplotlib اس کام کے لیے بہت مفید ٹول ہے۔ تمام X اور y ٹیسٹ ڈیٹا سے سکریٹرپلاٹ بنائیں، اور پیش گوئی کو استعمال کر کے ماڈل کے ڈیٹا گروپس کے درمیان موزوں جگہ پر ایک لائن کھینچیں۔
plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show()✅ تھوڑا سوچیں کہ یہاں کیا ہو رہا ہے۔ ایک سیدھی لائن بہت سے چھوٹے نقاط سے گزر رہی ہے، لیکن یہ بالکل کیا کر رہی ہے؟ کیا آپ دیکھ سکتے ہیں کہ اس لائن کی مدد سے آپ نئے، دیکھے نہ گئے ڈیٹا پوائنٹ کو پلاٹ کے y محور کے تعلق سے کہاں فٹ ہونا چاہیے پیش گوئی کر سکیں گے؟ اس ماڈل کے عملی استعمال کو الفاظ میں بیان کرنے کی کوشش کریں۔
مبارک ہو، آپ نے اپنا پہلا لینئر ریگریشن ماڈل بنایا، اس سے پیش گوئی کی، اور پلاٹ میں دکھایا!
🚀چیلنج
اس ڈیٹاسیٹ کا کوئی دوسرا ویریبل پلاٹ کریں۔ اشارہ: اس لائن کو ترمیم کریں: X = X[:,2]۔ اس ڈیٹاسیٹ کے ہدف کو دیکھتے ہوئے، آپ ذیابیطس کے مرض کے ارتقاء کے بارے میں کیا دریافت کر سکتے ہیں؟
پوسٹ لیکچر کوئز
جائزہ اور خود مطالعہ
اس سبق میں، آپ نے سادہ لینئر ریگریشن کے ساتھ کام کیا، نہ کہ یک متغیری یا کثیر متغیری لینئر ریگریشن کے ساتھ۔ ان طریقوں کے فرق کے بارے میں کچھ پڑھیں، یا اس ویڈیو کو دیکھیں۔
رجریشن کے تصور کے بارے میں مزید پڑھیں اور غور کریں کہ اس تکنیک سے کس قسم کے سوالات کے جواب دیے جا سکتے ہیں۔ اپنی سمجھ کو گہرا کرنے کے لیے یہ tutorial لیں۔
اسائنمنٹ
ڈس کلیمر: یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔






