|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "7c077988328ebfe33b24d07945f16eca",
|
|
|
"translation_date": "2025-09-06T08:46:01+00:00",
|
|
|
"source_file": "2-Regression/2-Data/README.md",
|
|
|
"language_code": "ur"
|
|
|
}
|
|
|
-->
|
|
|
# سکائٹ لرن کے ذریعے ریگریشن ماڈل بنائیں: ڈیٹا تیار کریں اور بصری بنائیں
|
|
|
|
|
|

|
|
|
|
|
|
انفوگرافک از [دسانی مڈیپالی](https://twitter.com/dasani_decoded)
|
|
|
|
|
|
## [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
|
|
> ### [یہ سبق R میں دستیاب ہے!](../../../../2-Regression/2-Data/solution/R/lesson_2.html)
|
|
|
|
|
|
## تعارف
|
|
|
|
|
|
اب جب کہ آپ سکائٹ لرن کے ساتھ مشین لرننگ ماڈل بنانے کے لیے ضروری ٹولز کے ساتھ تیار ہیں، آپ اپنے ڈیٹا سے سوالات پوچھنے کے لیے تیار ہیں۔ جب آپ ڈیٹا کے ساتھ کام کرتے ہیں اور ایم ایل حل لاگو کرتے ہیں، تو یہ سمجھنا بہت ضروری ہے کہ اپنے ڈیٹا سیٹ کی صلاحیتوں کو صحیح طریقے سے کھولنے کے لیے صحیح سوال کیسے پوچھا جائے۔
|
|
|
|
|
|
اس سبق میں، آپ سیکھیں گے:
|
|
|
|
|
|
- ماڈل بنانے کے لیے اپنے ڈیٹا کو کیسے تیار کریں۔
|
|
|
- ڈیٹا بصری کے لیے میٹپلاٹ لائبریری کا استعمال کیسے کریں۔
|
|
|
|
|
|
## اپنے ڈیٹا سے صحیح سوال پوچھنا
|
|
|
|
|
|
جو سوال آپ کے جواب کا منتظر ہے وہ طے کرے گا کہ آپ کس قسم کے ایم ایل الگورتھم استعمال کریں گے۔ اور جو جواب آپ کو واپس ملے گا اس کا معیار آپ کے ڈیٹا کی نوعیت پر بہت زیادہ منحصر ہوگا۔
|
|
|
|
|
|
اس سبق کے لیے فراہم کردہ [ڈیٹا](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) پر ایک نظر ڈالیں۔ آپ اس .csv فائل کو VS کوڈ میں کھول سکتے ہیں۔ ایک فوری نظر سے پتہ چلتا ہے کہ خالی جگہیں ہیں اور اس میں سٹرنگز اور عددی ڈیٹا کا امتزاج ہے۔ ایک عجیب کالم بھی ہے جسے 'پیکیج' کہا جاتا ہے جہاں ڈیٹا 'سیکس'، 'بِنز' اور دیگر اقدار کے درمیان ملا ہوا ہے۔ حقیقت میں، یہ ڈیٹا تھوڑا سا گڑبڑ ہے۔
|
|
|
|
|
|
[](https://youtu.be/5qGjczWTrDQ "مشین لرننگ کے ابتدائی افراد کے لیے - ڈیٹا سیٹ کا تجزیہ اور صفائی کیسے کریں")
|
|
|
|
|
|
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس سبق کے لیے ڈیٹا تیار کرنے پر ایک مختصر ویڈیو دیکھ سکیں۔
|
|
|
|
|
|
حقیقت میں، یہ بہت عام نہیں ہے کہ آپ کو ایک ایسا ڈیٹا سیٹ دیا جائے جو ایم ایل ماڈل بنانے کے لیے مکمل طور پر تیار ہو۔ اس سبق میں، آپ سیکھیں گے کہ معیاری پائتھن لائبریریوں کا استعمال کرتے ہوئے ایک خام ڈیٹا سیٹ کو کیسے تیار کیا جائے۔ آپ ڈیٹا کو بصری بنانے کے مختلف طریقے بھی سیکھیں گے۔
|
|
|
|
|
|
## کیس اسٹڈی: 'کدو کی مارکیٹ'
|
|
|
|
|
|
اس فولڈر میں آپ کو روٹ `data` فولڈر میں ایک .csv فائل ملے گی جسے [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) کہا جاتا ہے، جس میں کدو کی مارکیٹ کے بارے میں 1757 لائنز کا ڈیٹا شامل ہے، جو شہر کے لحاظ سے گروپنگ میں ترتیب دیا گیا ہے۔ یہ خام ڈیٹا [اسپیشلٹی کراپس ٹرمینل مارکیٹس اسٹینڈرڈ رپورٹس](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) سے نکالا گیا ہے، جو کہ ریاستہائے متحدہ کے محکمہ زراعت کی طرف سے تقسیم کیا گیا ہے۔
|
|
|
|
|
|
### ڈیٹا تیار کرنا
|
|
|
|
|
|
یہ ڈیٹا عوامی ڈومین میں ہے۔ اسے USDA ویب سائٹ سے کئی الگ الگ فائلوں میں، ہر شہر کے لیے، ڈاؤن لوڈ کیا جا سکتا ہے۔ بہت زیادہ الگ الگ فائلوں سے بچنے کے لیے، ہم نے تمام شہر کے ڈیٹا کو ایک اسپریڈشیٹ میں جوڑ دیا ہے، اس طرح ہم نے پہلے ہی ڈیٹا کو تھوڑا سا _تیار_ کر لیا ہے۔ اگلا، آئیے ڈیٹا کو قریب سے دیکھتے ہیں۔
|
|
|
|
|
|
### کدو کا ڈیٹا - ابتدائی نتائج
|
|
|
|
|
|
آپ اس ڈیٹا کے بارے میں کیا نوٹ کرتے ہیں؟ آپ نے پہلے ہی دیکھا ہے کہ اس میں سٹرنگز، نمبرز، خالی جگہیں اور عجیب اقدار کا امتزاج ہے جنہیں آپ کو سمجھنا ہوگا۔
|
|
|
|
|
|
آپ اس ڈیٹا سے ریگریشن تکنیک کا استعمال کرتے ہوئے کون سا سوال پوچھ سکتے ہیں؟ کیا "کسی دیے گئے مہینے کے دوران فروخت کے لیے کدو کی قیمت کی پیش گوئی کریں" مناسب ہوگا؟ ڈیٹا کو دوبارہ دیکھتے ہوئے، آپ کو ڈیٹا اسٹرکچر بنانے کے لیے کچھ تبدیلیاں کرنے کی ضرورت ہے جو اس کام کے لیے ضروری ہے۔
|
|
|
|
|
|
## مشق - کدو کے ڈیٹا کا تجزیہ کریں
|
|
|
|
|
|
آئیے [پینڈاز](https://pandas.pydata.org/) استعمال کریں، (اس کا نام `Python Data Analysis` کے لیے ہے) جو ڈیٹا کو شکل دینے کے لیے ایک بہت مفید ٹول ہے، تاکہ اس کدو کے ڈیٹا کا تجزیہ اور تیاری کی جا سکے۔
|
|
|
|
|
|
### پہلے، گمشدہ تاریخوں کی جانچ کریں
|
|
|
|
|
|
آپ کو پہلے گمشدہ تاریخوں کی جانچ کرنے کے لیے اقدامات کرنے کی ضرورت ہوگی:
|
|
|
|
|
|
1. تاریخوں کو مہینے کی شکل میں تبدیل کریں (یہ امریکی تاریخیں ہیں، لہذا فارمیٹ `MM/DD/YYYY` ہے)۔
|
|
|
2. مہینے کو ایک نئے کالم میں نکالیں۔
|
|
|
|
|
|
_نوٹ بک.ipynb_ فائل کو ویژول اسٹوڈیو کوڈ میں کھولیں اور اسپریڈشیٹ کو ایک نئے پینڈاز ڈیٹا فریم میں درآمد کریں۔
|
|
|
|
|
|
1. پہلے پانچ قطاروں کو دیکھنے کے لیے `head()` فنکشن استعمال کریں۔
|
|
|
|
|
|
```python
|
|
|
import pandas as pd
|
|
|
pumpkins = pd.read_csv('../data/US-pumpkins.csv')
|
|
|
pumpkins.head()
|
|
|
```
|
|
|
|
|
|
✅ آپ آخری پانچ قطاروں کو دیکھنے کے لیے کون سا فنکشن استعمال کریں گے؟
|
|
|
|
|
|
1. موجودہ ڈیٹا فریم میں گمشدہ ڈیٹا کی جانچ کریں:
|
|
|
|
|
|
```python
|
|
|
pumpkins.isnull().sum()
|
|
|
```
|
|
|
|
|
|
گمشدہ ڈیٹا موجود ہے، لیکن شاید یہ موجودہ کام کے لیے اہم نہ ہو۔
|
|
|
|
|
|
1. اپنے ڈیٹا فریم کو کام کرنے میں آسان بنانے کے لیے، صرف وہی کالم منتخب کریں جن کی آپ کو ضرورت ہے، `loc` فنکشن کا استعمال کرتے ہوئے جو اصل ڈیٹا فریم سے قطاروں (پہلا پیرامیٹر) اور کالمز (دوسرا پیرامیٹر) کا ایک گروپ نکالتا ہے۔ نیچے دیے گئے کیس میں اظہار `:` کا مطلب ہے "تمام قطاریں"۔
|
|
|
|
|
|
```python
|
|
|
columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
|
|
|
pumpkins = pumpkins.loc[:, columns_to_select]
|
|
|
```
|
|
|
|
|
|
### دوسرا، کدو کی اوسط قیمت کا تعین کریں
|
|
|
|
|
|
سوچیں کہ کسی دیے گئے مہینے میں کدو کی اوسط قیمت کا تعین کیسے کریں۔ اس کام کے لیے آپ کون سے کالمز منتخب کریں گے؟ اشارہ: آپ کو 3 کالمز کی ضرورت ہوگی۔
|
|
|
|
|
|
حل: `Low Price` اور `High Price` کالمز کی اوسط لے کر نئے Price کالم کو بھرنا، اور Date کالم کو صرف مہینے دکھانے کے لیے تبدیل کرنا۔ خوش قسمتی سے، اوپر دی گئی جانچ کے مطابق، تاریخوں یا قیمتوں کے لیے کوئی گمشدہ ڈیٹا نہیں ہے۔
|
|
|
|
|
|
1. اوسط کا حساب لگانے کے لیے، درج ذیل کوڈ شامل کریں:
|
|
|
|
|
|
```python
|
|
|
price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
|
|
|
|
|
|
month = pd.DatetimeIndex(pumpkins['Date']).month
|
|
|
|
|
|
```
|
|
|
|
|
|
✅ آپ `print(month)` کا استعمال کرتے ہوئے کسی بھی ڈیٹا کو چیک کرنے کے لیے پرنٹ کر سکتے ہیں۔
|
|
|
|
|
|
2. اب، اپنے تبدیل شدہ ڈیٹا کو ایک نئے پینڈاز ڈیٹا فریم میں کاپی کریں:
|
|
|
|
|
|
```python
|
|
|
new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
|
|
|
```
|
|
|
|
|
|
اپنے ڈیٹا فریم کو پرنٹ کرنے سے آپ کو ایک صاف، ترتیب شدہ ڈیٹا سیٹ دکھائی دے گا جس پر آپ اپنا نیا ریگریشن ماڈل بنا سکتے ہیں۔
|
|
|
|
|
|
### لیکن ٹھہریں! یہاں کچھ عجیب ہے
|
|
|
|
|
|
اگر آپ `Package` کالم کو دیکھیں، تو کدو مختلف کنفیگریشنز میں فروخت ہوتے ہیں۔ کچھ '1 1/9 بسشل' پیمائش میں فروخت ہوتے ہیں، اور کچھ '1/2 بسشل' پیمائش میں، کچھ فی کدو، کچھ فی پاؤنڈ، اور کچھ بڑے بکسوں میں مختلف چوڑائیوں کے ساتھ۔
|
|
|
|
|
|
> کدو کو مستقل طور پر وزن کرنا بہت مشکل لگتا ہے
|
|
|
|
|
|
اصل ڈیٹا میں کھودتے ہوئے، یہ دلچسپ ہے کہ کچھ بھی جس کا `Unit of Sale` 'EACH' یا 'PER BIN' کے برابر ہے، اس کے ساتھ `Package` قسم فی انچ، فی بن، یا 'each' بھی ہے۔ کدو کو مستقل طور پر وزن کرنا بہت مشکل لگتا ہے، لہذا آئیے انہیں فلٹر کرتے ہیں اور صرف وہ کدو منتخب کرتے ہیں جن کے `Package` کالم میں 'bushel' کا سٹرنگ موجود ہے۔
|
|
|
|
|
|
1. فائل کے اوپر، ابتدائی .csv درآمد کے تحت ایک فلٹر شامل کریں:
|
|
|
|
|
|
```python
|
|
|
pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
|
|
|
```
|
|
|
|
|
|
اگر آپ اب ڈیٹا پرنٹ کریں، تو آپ دیکھ سکتے ہیں کہ آپ کو صرف وہ 415 یا اس سے زیادہ قطاریں مل رہی ہیں جن میں بسشل کے ذریعے کدو شامل ہیں۔
|
|
|
|
|
|
### لیکن ٹھہریں! کرنے کے لیے ایک اور چیز ہے
|
|
|
|
|
|
کیا آپ نے نوٹ کیا کہ بسشل کی مقدار ہر قطار میں مختلف ہوتی ہے؟ آپ کو قیمتوں کو معمول پر لانے کی ضرورت ہے تاکہ آپ بسشل کے حساب سے قیمت دکھا سکیں، لہذا بسشل پیمائش کو معیاری بنانے کے لیے کچھ حساب کریں۔
|
|
|
|
|
|
1. ان لائنز کو نئے_pumpkins ڈیٹا فریم بنانے والے بلاک کے بعد شامل کریں:
|
|
|
|
|
|
```python
|
|
|
new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)
|
|
|
|
|
|
new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)
|
|
|
```
|
|
|
|
|
|
✅ [دی سپروس ایٹس](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) کے مطابق، بسشل کا وزن پیداوار کی قسم پر منحصر ہوتا ہے، کیونکہ یہ حجم کی پیمائش ہے۔ "مثال کے طور پر، ٹماٹروں کا ایک بسشل 56 پاؤنڈ وزن کا ہونا چاہیے... پتوں اور سبزوں میں کم وزن کے ساتھ زیادہ جگہ لگتی ہے، لہذا پالک کا ایک بسشل صرف 20 پاؤنڈ ہے۔" یہ سب کافی پیچیدہ ہے! آئیے بسشل سے پاؤنڈ میں تبدیلی کرنے کی زحمت نہ کریں، اور اس کے بجائے بسشل کے حساب سے قیمت لگائیں۔ کدو کے بسشل کا مطالعہ کرنے سے، تاہم، یہ ظاہر ہوتا ہے کہ اپنے ڈیٹا کی نوعیت کو سمجھنا کتنا اہم ہے!
|
|
|
|
|
|
اب، آپ بسشل پیمائش کی بنیاد پر یونٹ کے حساب سے قیمتوں کا تجزیہ کر سکتے ہیں۔ اگر آپ ڈیٹا کو ایک بار پھر پرنٹ کریں، تو آپ دیکھ سکتے ہیں کہ یہ معیاری ہو گیا ہے۔
|
|
|
|
|
|
✅ کیا آپ نے نوٹ کیا کہ آدھے بسشل کے ذریعے فروخت ہونے والے کدو بہت مہنگے ہیں؟ کیا آپ اس کی وجہ معلوم کر سکتے ہیں؟ اشارہ: چھوٹے کدو بڑے کدو کے مقابلے میں بہت مہنگے ہیں، شاید اس لیے کہ بسشل میں ان کی تعداد بہت زیادہ ہوتی ہے، دیے گئے ایک بڑے کھوکھلے پائی کدو کے استعمال شدہ جگہ کے مقابلے۔
|
|
|
|
|
|
## بصری حکمت عملی
|
|
|
|
|
|
ڈیٹا سائنسدان کا کردار ڈیٹا کے معیار اور نوعیت کو ظاہر کرنا ہے جس کے ساتھ وہ کام کر رہے ہیں۔ ایسا کرنے کے لیے، وہ اکثر دلچسپ بصری تخلیق کرتے ہیں، جیسے پلاٹس، گرافز، اور چارٹس، جو ڈیٹا کے مختلف پہلوؤں کو ظاہر کرتے ہیں۔ اس طرح، وہ بصری طور پر تعلقات اور خلا کو ظاہر کر سکتے ہیں جو بصورت دیگر دریافت کرنا مشکل ہوتا ہے۔
|
|
|
|
|
|
[](https://youtu.be/SbUkxH6IJo0 "مشین لرننگ کے ابتدائی افراد کے لیے - میٹپلاٹ لائبریری کے ساتھ ڈیٹا کو بصری بنانا")
|
|
|
|
|
|
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ اس سبق کے لیے ڈیٹا کو بصری بنانے پر ایک مختصر ویڈیو دیکھ سکیں۔
|
|
|
|
|
|
بصری تخلیقات مشین لرننگ تکنیک کا تعین کرنے میں بھی مدد کر سکتی ہیں جو ڈیٹا کے لیے سب سے زیادہ مناسب ہو۔ مثال کے طور پر، ایک اسکیٹر پلاٹ جو ایک لائن کی پیروی کرتا ہوا نظر آتا ہے، یہ ظاہر کرتا ہے کہ ڈیٹا ایک لکیری ریگریشن مشق کے لیے اچھا امیدوار ہے۔
|
|
|
|
|
|
ایک ڈیٹا بصری لائبریری جو جیوپیٹر نوٹ بکس میں اچھی طرح کام کرتی ہے وہ ہے [میٹپلاٹ](https://matplotlib.org/) (جسے آپ نے پچھلے سبق میں بھی دیکھا تھا)۔
|
|
|
|
|
|
> ڈیٹا بصری کے ساتھ مزید تجربہ حاصل کریں [ان ٹیوٹوریلز](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott) میں۔
|
|
|
|
|
|
## مشق - میٹپلاٹ کے ساتھ تجربہ کریں
|
|
|
|
|
|
نئے ڈیٹا فریم کو ظاہر کرنے کے لیے کچھ بنیادی پلاٹس بنانے کی کوشش کریں جو آپ نے ابھی تخلیق کیا ہے۔ ایک بنیادی لائن پلاٹ کیا دکھائے گا؟
|
|
|
|
|
|
1. فائل کے اوپر، پینڈاز درآمد کے تحت میٹپلاٹ درآمد کریں:
|
|
|
|
|
|
```python
|
|
|
import matplotlib.pyplot as plt
|
|
|
```
|
|
|
|
|
|
1. پورے نوٹ بک کو دوبارہ چلائیں تاکہ تازہ کاری ہو۔
|
|
|
1. نوٹ بک کے نیچے ایک سیل شامل کریں تاکہ ڈیٹا کو ایک باکس کے طور پر پلاٹ کریں:
|
|
|
|
|
|
```python
|
|
|
price = new_pumpkins.Price
|
|
|
month = new_pumpkins.Month
|
|
|
plt.scatter(price, month)
|
|
|
plt.show()
|
|
|
```
|
|
|
|
|
|

|
|
|
|
|
|
کیا یہ ایک مفید پلاٹ ہے؟ کیا اس کے بارے میں کچھ آپ کو حیران کرتا ہے؟
|
|
|
|
|
|
یہ خاص طور پر مفید نہیں ہے کیونکہ یہ صرف آپ کے ڈیٹا کو ایک دیے گئے مہینے میں پوائنٹس کے پھیلاؤ کے طور پر ظاہر کرتا ہے۔
|
|
|
|
|
|
### اسے مفید بنائیں
|
|
|
|
|
|
چارٹس کو مفید ڈیٹا ظاہر کرنے کے لیے، آپ کو عام طور پر کسی نہ کسی طرح ڈیٹا کو گروپ کرنے کی ضرورت ہوتی ہے۔ آئیے ایک پلاٹ بنانے کی کوشش کرتے ہیں جہاں y محور مہینے دکھاتا ہے اور ڈیٹا ڈیٹا کی تقسیم کو ظاہر کرتا ہے۔
|
|
|
|
|
|
1. ایک گروپڈ بار چارٹ بنانے کے لیے ایک سیل شامل کریں:
|
|
|
|
|
|
```python
|
|
|
new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
|
|
|
plt.ylabel("Pumpkin Price")
|
|
|
```
|
|
|
|
|
|

|
|
|
|
|
|
یہ ایک زیادہ مفید ڈیٹا بصری ہے! ایسا لگتا ہے کہ کدو کی سب سے زیادہ قیمت ستمبر اور اکتوبر میں ہوتی ہے۔ کیا یہ آپ کی توقعات پر پورا اترتا ہے؟ کیوں یا کیوں نہیں؟
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀چیلنج
|
|
|
|
|
|
میٹپلاٹ کے مختلف قسم کے بصری تخلیقات کو دریافت کریں۔ کون سی قسمیں ریگریشن مسائل کے لیے سب سے زیادہ مناسب ہیں؟
|
|
|
|
|
|
## [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
|
|
## جائزہ اور خود مطالعہ
|
|
|
|
|
|
ڈیٹا کو بصری بنانے کے مختلف طریقوں پر ایک نظر ڈالیں۔ دستیاب مختلف لائبریریوں کی فہرست بنائیں اور نوٹ کریں کہ کون سی مخصوص قسم کے کاموں کے لیے بہترین ہیں، مثال کے طور پر 2D بصری تخلیقات بمقابلہ 3D بصری تخلیقات۔ آپ کیا دریافت کرتے ہیں؟
|
|
|
|
|
|
## اسائنمنٹ
|
|
|
|
|
|
[بصری تخلیقات کی تلاش](assignment.md)
|
|
|
|
|
|
---
|
|
|
|
|
|
**ڈسکلیمر**:
|
|
|
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔ |