You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/ur/5-Clustering/1-Visualize/README.md

340 lines
32 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# کلسٹرنگ کا تعارف
کلسٹرنگ ایک قسم کی [غیر نگران سیکھنے](https://wikipedia.org/wiki/Unsupervised_learning) ہے جو فرض کرتی ہے کہ ڈیٹاسیٹ لیبل نہیں شدہ ہے یا اس کے ان پٹ پہلے سے متعین نتائج کے ساتھ مطابقت نہیں رکھتے۔ یہ مختلف الگورتھمز کا استعمال کرکے لیبل نہ شدہ ڈیٹا میں نمونوں کے مطابق گروہ بندی فراہم کرتی ہے۔
[![No One Like You by PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
> 🎥 ویڈیو کے لیے اوپر تصویر پر کلک کریں۔ جب آپ کلسٹرنگ کے ساتھ مشین لرننگ کا مطالعہ کر رہے ہیں، تو کچھ نائجیرین ڈانس ہال ٹریکس سے لطف اندوز ہوں - یہ PSquare کا 2014 کا بہت مقبول گانا ہے۔
## [پری لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/)
### تعارف
[کلسٹرنگ](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) ڈیٹا کی کھوج کے لیے بہت مفید ہے۔ آئیے دیکھتے ہیں کہ کیا یہ نائجیرین سامعین کے موسیقی کے استعمال میں رجحانات اور پیٹرنز کی دریافت میں مدد دے سکتی ہے۔
✅ کلسٹرنگ کے استعمالات کے بارے میں ایک منٹ سوچیں۔ حقیقی زندگی میں، کلسٹرنگ اس وقت ہوتی ہے جب آپ کے پاس کپڑوں کا ڈھیر ہوتا ہے اور آپ کو اپنے خاندان کے افراد کے کپڑوں کو الگ کرنا ہوتا ہے 🧦👕👖🩲۔ ڈیٹا سائنس میں، کلسٹرنگ اس وقت ہوتی ہے جب صارف کی ترجیحات کا تجزیہ کرنے یا کسی لیبل نہ شدہ ڈیٹاسیٹ کی خصوصیات کا تعین کرنے کی کوشش کی جاتی ہے۔ کلسٹرنگ ایک طرح سے بدنظمی کو سمجھنے میں مدد دیتی ہے، جیسے موزے کے دراج کا نظم کرنا۔
[![Introduction to ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
> 🎥 ویڈیو کے لیے اوپر تصویر پر کلک کریں: MIT کے جان گوٹینگ کلسٹرنگ کا تعارف کرواتے ہیں۔
پیشہ ورانہ ماحول میں، کلسٹرنگ مارکیٹ تقسیم، مثلاً مختلف عمر کے گروہوں کے خریدنے والے اشیاء کا تعین کرنے کے لیے استعمال کی جا سکتی ہے۔ ایک اور استعمال انومی لی پایا جانا ہو سکتا ہے، مثلاً کریڈٹ کارڈ لین دین کے ڈیٹاسیٹ سے دھوکہ دہی کا پتہ لگانا۔ یا آپ کلسٹرنگ میڈیکل سکینز کے ایک بیچ میں ٹیومرز کا تعین کرنے کے لیے استعمال کر سکتے ہیں۔
✅ ایک منٹ سوچیں کہ آپ نے بینکنگ، ای کامرس، یا کاروباری ماحول میں کلسٹرنگ کا سامنا کس طرح کیا ہو گا۔
> 🎓 دلچسپ بات یہ ہے کہ کلسٹر تجزیہ 1930 کی دہائی میں انسانیات اور نفسیات کے شعبوں سے آیا تھا۔ کیا آپ تصور کر سکتے ہیں کہ اسے کیسے استعمال کیا گیا ہوگا؟
متبادل طور پر، آپ اسے تلاش کے نتائج کو گروپ کرنے کے لیے استعمال کر سکتے ہیں - جیسے خریداری کے لنکس، تصاویر، یا جائزے۔ کلسٹرنگ اس وقت مفید ہے جب آپ کے پاس ایک بڑا ڈیٹاسیٹ ہو جسے آپ کم کرنا چاہتے ہیں اور جس پر مزید تفصیلی تجزیہ کرنا چاہتے ہیں، تاکہ دیگر ماڈلز بنانے سے پہلے ڈیٹا کے بارے میں سیکھا جا سکے۔
✅ جب آپ کا ڈیٹا کلسٹروں میں منظم ہو جاتا ہے، تو آپ اسے ایک کلسٹر آئی ڈی دیتے ہیں، اور یہ تکنیک ڈیٹاسیٹ کی پرائیویسی برقرار رکھنے میں بھی مفید ہو سکتی ہے؛ آپ ایک ڈیٹا پوائنٹ کا حوالہ اس کے کلسٹر آئی ڈی سے دے سکتے ہیں، بجائے اس کے کہ زیادہ ظاہر کرنے والے شناختی ڈیٹا سے۔ کیا آپ دوسرا کوئی وجہ سوچ سکتے ہیں جس کی بنا پر آپ کلسٹر آئی ڈی کو دیگر عناصر کی بجائے پہچاننے کے لیے استعمال کریں؟
کلسٹرنگ تکنیک کی اپنی سمجھ کو گہرا کرنے کے لیے اس [لرن ماڈیول](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) کو دیکھیں۔
## کلسٹرنگ کے ساتھ آغاز
[Scikit-learn ایک وسیع اقسام](https://scikit-learn.org/stable/modules/clustering.html) کے طریقے فراہم کرتا ہے کلسٹرنگ کرنے کے لیے۔ آپ جو قسم منتخب کریں گے وہ آپ کے استعمال کے کیس پر منحصر ہوگی۔ دستاویزات کے مطابق، ہر طریقہ کار کے مختلف فوائد ہیں۔ یہاں Scikit-learn کے ذریعہ سپورٹ کیے جانے والے طریقوں اور ان کے مناسب استعمال کے کیسز کی ایک سادہ جدول ہے:
| طریقہ کار کا نام | استعمال کا کیس |
| :------------------------- | :-------------------------------------------------------------------- |
| K-Means | عمومی مقصد، استقرائی |
| Affinity propagation | بہت سے، غیر مساوی کلسٹرز، استقرائی |
| Mean-shift | بہت سے، غیر مساوی کلسٹرز، استقرائی |
| Spectral clustering | چند، مساوی کلسٹرز، انتقالی |
| Ward hierarchical clustering | بہت سے، محدود کلسٹرز، انتقالی |
| Agglomerative clustering | بہت سے، محدود، غیر ایکیلیڈین فاصلہ، انتقالی |
| DBSCAN | غیر فلیٹ جیومیٹری، غیر مساوی کلسٹرز، انتقالی |
| OPTICS | غیر فلیٹ جیومیٹری، مختلف کثافت کے ساتھ غیر مساوی کلسٹرز، انتقالی |
| Gaussian mixtures | فلیٹ جیومیٹری، استقرائی |
| BIRCH | بڑے ڈیٹاسیٹ کے ساتھ آؤٹ لائیرز، استقرائی |
> 🎓 ہم کلسٹرز کیسے بناتے ہیں اس کا بہت تعلق اس بات سے ہے کہ ہم ڈیٹا پوائنٹس کو گروہوں میں کیسے جمع کرتے ہیں۔ آئیے کچھ الفاظ کھولتے ہیں:
>
> 🎓 ['انتقالی' بمقابلہ 'استقرائی'](https://wikipedia.org/wiki/Transduction_(machine_learning))
>
> انتقالی استنتاج مشاہدہ شدہ تربیتی کیسز سے ماخوذ ہوتا ہے جو مخصوص ٹیسٹ کیسز سے مماثل ہوتے ہیں۔ استقرائی استنتاج تربیتی کیسز سے ماخوذ ہوتا ہے جو عمومی قواعد کو ظاہر کرتے ہیں جو بعد میں ٹیسٹ کیسز پر لاگو ہوتے ہیں۔
>
> ایک مثال: تصور کریں کہ آپ کے پاس ایک ڈیٹاسیٹ جزوی طور پر لیبل شدہ ہے۔ کچھ چیزیں 'ریکارڈز' ہیں، کچھ 'سی ڈیز' ہیں، اور کچھ خالی ہیں۔ آپ کا کام خالی جگہوں کے لیے لیبل فراہم کرنا ہے۔ اگر آپ استقرائی طریقہ اپنائیں گے، تو آپ ایک ماڈل کو 'ریکارڈز' اور 'سی ڈیز' تلاش کرنے کی تربیت دیں گے، اور ان لیبلز کو اپنے غیر لیبل شدہ ڈیٹا پر لاگو کریں گے۔ یہ طریقہ 'کیسٹ' کی درجہ بندی میں مشکل پیش آئے گا۔ دوسری طرف، ایک انتقالی طریقہ اس غیر معلوم ڈیٹا کو زیادہ مؤثر طریقے سے سنبھالتا ہے کیونکہ یہ ایک دوسرے جیسے اشیاء کو گروہ بند کرتا ہے اور پھر گروہ کو لیبل دیتا ہے۔ اس صورت میں، کلسٹرز ممکنہ طور پر 'گول موسیقی کی اشیاء' اور 'چوکور موسیقی کی اشیاء' کی عکاسی کر سکتے ہیں۔
>
> 🎓 ['غیر فلیٹ' بمقابلہ 'فلیٹ' جیومیٹری](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
>
> ریاضی کی اصطلاحات سے ماخوذ، غیر فلیٹ بمقابلہ فلیٹ جیومیٹری کا مطلب پوائنٹس کے درمیان فاصلے کی پیمائش 'فلیٹ' ([یونی کلیدی](https://wikipedia.org/wiki/Euclidean_geometry)) یا 'غیر فلیٹ' (غیر یونی کلیدی) جیومیٹرک طریقوں سے ہوتا ہے۔
>
> یہاں 'فلیٹ' یونی کلیدی جیومیٹری کی طرف اشارہ کرتا ہے (جس کے حصے کو 'ہموار' جیومیٹری کے طور پر پڑھایا جاتا ہے)، اور غیر فلیٹ غیر یونی کلیدی جیومیٹری کو کہتے ہیں۔ جیومیٹری کا کیا تعلق مشین لرننگ سے ہے؟ چونکہ دونوں شعبے ریاضی پر مبنی ہیں، فاصلے کی پیمائش کا ایک عام طریقہ ہونا چاہیے، جو ڈیٹا کی نوعیت کے مطابق 'فلیٹ' یا 'غیر فلیٹ' ہو سکتا ہے۔ [یونی کلیدی فاصلے](https://wikipedia.org/wiki/Euclidean_distance) دو نقاط کے درمیان لائن کا لمبائی ناپتے ہیں۔ [غیر یونی کلیدی فاصلے](https://wikipedia.org/wiki/Non-Euclidean_geometry) خم دار راستے پر ناپے جاتے ہیں۔ اگر آپ کا ڈیٹا ویژولائز کیا جائے اور وہ کسی طیارے پر موجود نہ لگے تو آپ کو اسے سنبھالنے کے لیے خصوصی الگورتھم استعمال کرنے کی ضرورت ہو سکتی ہے۔
>
![Flat vs Nonflat Geometry Infographic](../../../../translated_images/ur/flat-nonflat.d1c8c6e2a96110c1.webp)
> انفورگرافک از [داسانی مادپلی](https://twitter.com/dasani_decoded)
>
> 🎓 ['فاصلہ'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
>
> کلسٹرز فاصلہ میٹرکس سے متعین ہوتے ہیں، جیسے کہ پوائنٹس کے درمیان فاصلے۔ یہ فاصلے چند طریقوں سے ناپے جا سکتے ہیں۔ یونی کلیدی کلسٹرز پوائنٹ کی اوسط کی بنیاد پر متعین ہوتے ہیں اور ایک 'سنٹروئڈ' یا مرکز نقطہ رکھتے ہیں۔ فاصلے سنٹروئڈ تک فاصلے سے ناپے جاتے ہیں۔ غیر یونی کلیدی فاصلے 'کلسٹروئیڈز' کو کہتے ہیں، جو دوسرے پوائنٹس کے قریب ترین پوائنٹ ہوتا ہے۔ کلسٹروئڈز بھی مختلف طریقوں سے متعین کیے جا سکتے ہیں۔
>
> 🎓 ['محدود'](https://wikipedia.org/wiki/Constrained_clustering)
>
> [محدود کلسٹرنگ](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) اس غیر نگران طریقہ میں 'نصف نگران' سیکھنے کو شامل کرتی ہے۔ پوائنٹس کے درمیان تعلقات کو 'لنک نہیں کر سکتے' یا 'لنک کرنا ضروری ہے' کے طور پر نشان زد کیا جاتا ہے تاکہ کچھ قواعد ڈیٹاسیٹ پر لاگو ہوں۔
>
> ایک مثال: اگر کسی الگورتھم کو بغیر لیبل یا نصف لیبل شدہ ڈیٹا پر آزاد چھوڑ دیا جائے، تو اس کے بنائے ہوئے کلسٹر کم معیار کے ہو سکتے ہیں۔ مذکورہ مثال میں، کلسٹر 'گول موسیقی کی اشیاء'، 'چوکور موسیقی کی اشیاء'، 'تکویناتی اشیاء'، اور 'کوکیز' میں تقسیم کر سکتے ہیں۔ اگر کچھ پابندیاں یا قواعد دیے جائیں ("آئٹم پلاسٹک کا ہونا چاہیے"، "آئٹم موسیقی پیدا کرنے کے قابل ہونا چاہیے") تو یہ الگورتھم کو بہتر فیصلے کرنے کے لیے مدد دیتا ہے۔
>
> 🎓 'کثافت'
>
> ایسا ڈیٹا جو 'شور والا' ہو اسے 'گنجان' سمجھا جاتا ہے۔ اس کے کلسٹرز میں پوائنٹس کے درمیان فاصلے سے پتہ چلتا ہے کہ یہ زیادہ یا کم گنجان، یا 'بھانڈیدہ' ہیں، اور اسے مناسب کلسٹرنگ طریقہ سے تجزیہ کرنے کی ضرورت ہوتی ہے۔ [یہ مضمون](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) شور والے ڈیٹاسیٹ کے لیے K-Means کلسٹرنگ اور HDBSCAN الگورتھمز کے مابین فرق کو واضح کرتا ہے جو مختلف کلسٹر کثافت رکھتے ہیں۔
## کلسٹرنگ الگورتھمز
ایک سو سے زائد کلسٹرنگ الگورتھمز موجود ہیں، اور ان کا استعمال دستیاب ڈیٹا کی نوعیت پر منحصر ہوتا ہے۔ آئیے کچھ اہم الگورتھمز پر بات کرتے ہیں:
- **ہائرارکل کلسٹرنگ**۔ اگر کسی شے کو اس کے قریبی شے کی قربت سے درجہ بند کیا جائے، نہ کہ دور کی چیز سے، تو کلسٹرز اس کے ممبرز کے ایک دوسرے سے فاصلے کی بنیاد پر بنتے ہیں۔ Scikit-learn کا Agglomerative کلسٹرنگ ہائرارکل ہے۔
![Hierarchical clustering Infographic](../../../../translated_images/ur/hierarchical.bf59403aa43c8c47.webp)
> انفورگرافک از [داسانی مادپلی](https://twitter.com/dasani_decoded)
- **سنٹروئڈ کلسٹرنگ**۔ یہ مشہور الگورتھم 'k' کا انتخاب چاہتا ہے، یعنی بننے والے کلسٹروں کی تعداد، جس کے بعد الگورتھم کلسٹر کے مرکز کا تعین کرتا ہے اور اس نقطہ کے ارد گرد ڈیٹا اکٹھا کرتا ہے۔ [K-means کلسٹرنگ](https://wikipedia.org/wiki/K-means_clustering) سنٹروئڈ کلسٹرنگ کا ایک مقبول ورژن ہے۔ مرکز قریبی اوسط کی بنیاد پر متعین ہوتا ہے، اسی لیے اس کا نام ہے۔ کلسٹر سے مربع فاصلہ کم سے کم ہوتا ہے۔
![Centroid clustering Infographic](../../../../translated_images/ur/centroid.097fde836cf6c918.webp)
> انفورگرافک از [داسانی مادپلی](https://twitter.com/dasani_decoded)
- **تقسیمی بنیاد پر کلسٹرنگ**۔ شماریاتی ماڈلنگ پر مبنی، یہ طریقہ تعین کرتا ہے کہ کسی ڈیٹا پوائنٹ کا کسی کلسٹر سے تعلق کتنا ممکن ہے، اور اس کے مطابق اس کا تعین کرتا ہے۔ Gaussian mixture اس قسم میں آتا ہے۔
- **کثافت بنیاد پر کلسٹرنگ**۔ پوائنٹس کو کلسٹرز میں ان کی کثافت، یعنی ایک دوسرے کے گرد گروہ بندی کی بنیاد پر تقسیم کیا جاتا ہے۔ گروہ سے دور موجود پوائنٹس کو 'آؤٹ لائرز' یا 'شور' سمجھا جاتا ہے۔ DBSCAN، Mean-shift، اور OPTICS اس قسم کی کلسٹرنگ میں آتے ہیں۔
- **گرڈ بنیاد پر کلسٹرنگ**۔ کثیر البعدی ڈیٹاسیٹس کے لیے، ایک گرڈ بنایا جاتا ہے اور ڈیٹا کو گرڈ کے خانوں میں تقسیم کیا جاتا ہے، اس طرح کلسٹرز بنتے ہیں۔
## مشق - اپنے ڈیٹا کو کلسٹر کریں
کلسٹرنگ ایک تکنیک ہے جس میں مناسب بصری نمائندگی بہت مدد دیتی ہے، تو آئیے اپنے موسیقی کے ڈیٹا کو ویژولائز کرنے سے شروع کرتے ہیں۔ یہ مشق ہمیں فیصلہ کرنے میں مدد دے گی کہ کلسٹرنگ کے کن طریقوں کو اس ڈیٹا کی نوعیت کے لیے سب سے مؤثر طریقے سے استعمال کیا جائے۔
1. اس فولڈر میں موجود [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) فائل کھولیں۔
1. `Seaborn` پیکج کو درآمد کریں تاکہ ڈیٹا کی اچھی بصری نمائندگی ہو سکے۔
```python
!pip install seaborn
```
1. [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) سے گانوں کے ڈیٹا کو شامل کریں۔ کچھ گانوں کے بارے میں ڈیٹافریم لوڈ کریں۔ لائبریریاں درآمد کریں اور ڈیٹا کو باہر نکال کر تیار ہو جائیں:
```python
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("../data/nigerian-songs.csv")
df.head()
```
ابتدائی چند لائنز کو چیک کریں:
| | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
| --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
| 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
| 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
| 2 | LITT! | LITT! | AYLØ | انڈی آر اینڈ بی | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | نائجیریائی پاپ | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
| 4 | wanted you | rare. | Odunsi (The Engine) | آفروپاپ | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
1. ڈیٹافریم کے بارے میں کچھ معلومات حاصل کریں، `info()` کال کرکے:
```python
df.info()
```
آؤٹ پٹ کچھ یوں دکھائی دیتا ہے:
```output
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 530 entries, 0 to 529
Data columns (total 16 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 530 non-null object
1 album 530 non-null object
2 artist 530 non-null object
3 artist_top_genre 530 non-null object
4 release_date 530 non-null int64
5 length 530 non-null int64
6 popularity 530 non-null int64
7 danceability 530 non-null float64
8 acousticness 530 non-null float64
9 energy 530 non-null float64
10 instrumentalness 530 non-null float64
11 liveness 530 non-null float64
12 loudness 530 non-null float64
13 speechiness 530 non-null float64
14 tempo 530 non-null float64
15 time_signature 530 non-null int64
dtypes: float64(8), int64(4), object(4)
memory usage: 66.4+ KB
```
1. خالی (null) ویلیوز ڈبل چیک کریں، `isnull()` کال کرکے اور اس کا سم 0 ہونے کی تصدیق کریں:
```python
df.isnull().sum()
```
ٹھیک لگ رہا ہے:
```output
name 0
album 0
artist 0
artist_top_genre 0
release_date 0
length 0
popularity 0
danceability 0
acousticness 0
energy 0
instrumentalness 0
liveness 0
loudness 0
speechiness 0
tempo 0
time_signature 0
dtype: int64
```
1. ڈیٹا کی وضاحت کریں:
```python
df.describe()
```
| | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
| ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
| count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
| mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
| std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
| min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
| 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
| 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
| 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
| max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
> 🤔 اگر ہم کلسٹرنگ پر کام کر رہے ہیں، ایک غیر نگرانی والا طریقہ جو لیبل شدہ ڈیٹا کی ضرورت نہیں ہوتی، تو ہم یہ ڈیٹا لیبلز کے ساتھ کیوں دکھا رہے ہیں؟ ڈیٹا کی جانچ کے مرحلے میں، یہ مددگار ہوتے ہیں، مگر کلسٹرنگ الگوردمز کے کام کرنے کے لئے ضروری نہیں ہیں۔ آپ آسانی سے کالم ہیڈرز ہٹا سکتے ہیں اور ڈیٹا کو کالم نمبر سے ریفر کر سکتے ہیں۔
ڈیٹا کی عمومی قدروں کو دیکھیں۔ نوٹ کریں کہ popularity '0' ہو سکتی ہے، جو ایسے گانوں کو ظاہر کرتی ہے جن کی کوئی رینکنگ نہیں ہے۔ آئیے جلد ہی انہیں ہٹا دیتے ہیں۔
1. سب سے زیادہ مقبول genres معلوم کرنے کے لئے بارپلاٹ استعمال کریں:
```python
import seaborn as sns
top = df['artist_top_genre'].value_counts()
plt.figure(figsize=(10,7))
sns.barplot(x=top[:5].index,y=top[:5].values)
plt.xticks(rotation=45)
plt.title('Top genres',color = 'blue')
```
![most popular](../../../../translated_images/ur/popular.9c48d84b3386705f.webp)
✅ اگر آپ زیادہ ٹاپ ویلیوز دیکھنا چاہتے ہیں، تو ٹاپ `[:5]` کو بڑا کر دیں، یا اسے ہٹا کر سب دیکھیں۔
نوٹ کریں، جب سب سے اوپر والا genre 'Missing' بتایا گیا ہو، تو اس کا مطلب ہے کہ Spotify نے اسے classify نہیں کیا، لہٰذا اسے ہٹا دیں۔
1. گمشدہ ڈیٹا سے چھٹکارا پائیں فلٹر کر کے
```python
df = df[df['artist_top_genre'] != 'Missing']
top = df['artist_top_genre'].value_counts()
plt.figure(figsize=(10,7))
sns.barplot(x=top.index,y=top.values)
plt.xticks(rotation=45)
plt.title('Top genres',color = 'blue')
```
اب genres دوبارہ چیک کریں:
![most popular](../../../../translated_images/ur/all-genres.1d56ef06cefbfcd6.webp)
1. اب تک، اوپر کے تین genres اس ڈیٹا سیٹ پر غالب ہیں۔ آئیے `afro dancehall`, `afropop`, اور `nigerian pop` پر توجہ دیں، اور اضافی طور پر ایسے ڈیٹا کو فلٹر کریں جس کی popularity ویلیو 0 ہو (یعنی اسے ڈیٹا سیٹ میں کوئی محبوبیت نہیں دی گئی اور ہمارے مقاصد کے لیے شور سمجھا جا سکتا ہے):
```python
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
df = df[(df['popularity'] > 0)]
top = df['artist_top_genre'].value_counts()
plt.figure(figsize=(10,7))
sns.barplot(x=top.index,y=top.values)
plt.xticks(rotation=45)
plt.title('Top genres',color = 'blue')
```
1. تیز جانچ کریں کہ آیا ڈیٹا کسی خاص طاقتور طریقے سے correlate کرتا ہے:
```python
corrmat = df.corr(numeric_only=True)
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True)
```
![correlations](../../../../translated_images/ur/correlation.a9356bb798f5eea5.webp)
واحد مضبوط correlation `energy` اور `loudness` کے درمیان ہے، جو زیادہ حیران کن نہیں کیونکہ شور مچانے والی موسیقی عام طور پر بہت توانائی بخش ہوتی ہے۔ ورنہ، correlations نسبتاً کمزور ہیں۔ دیکھنا دلچسپ ہوگا کہ کلسٹرنگ الگوردم اس ڈیٹا کا کیا فائدہ اٹھا سکتا ہے۔
> 🎓 یاد رکھیں correlation مطلب causation نہیں ہوتا! ہمارے پاس correlation کا ثبوت ہے لیکن causation کا نہیں۔ ایک [مزاحیہ ویب سائٹ](https://tylervigen.com/spurious-correlations) کچھ بصری پیش کرتی ہے جو اس بات پر زور دیتی ہے۔
کیا اس ڈیٹا سیٹ میں کسی گانے کی محسوس شدہ مقبولیت اور danceability کے درمیان کوئی ارتکاز ہے؟ ایک FacetGrid دکھاتی ہے کہ concentric circles ہیں جو لائن اپ کرتے ہیں، genre کی پرواہ کیے بغیر۔ کیا ہو سکتا ہے کہ نائجیریائی ذائقے اس genre کے لیے ایک مخصوص سطح کی danceability پر ملتے جلتے ہوں؟
✅ مختلف ڈیٹا پوائنٹس (energy, loudness, speechiness) اور مزید یا مختلف موسیقی کے genres آزما کر دیکھیں۔ آپ کیا دریافت کر سکتے ہیں؟ عام ڈیٹا پوائنٹس کی تقسیم دیکھنے کے لیے `df.describe()` جدول ملاحظہ کریں۔
### مشق - ڈیٹا کی تقسیم
کیا یہ تینوں genres اپنی danceability کی perception میں اپنی popularity کی بنیاد پر نمایاں طور پر مختلف ہیں؟
1. اپنی ٹاپ تین genres کی popularity اور danceability کی ڈیٹا تقسیم دی گئی x اور y محور پر جانچیں۔
```python
sns.set_theme(style="ticks")
g = sns.jointplot(
data=df,
x="popularity", y="danceability", hue="artist_top_genre",
kind="kde",
)
```
آپ ایک عمومی ارتکاز کے ارد گرد concentric circles دریافت کر سکتے ہیں، جو پوائنٹس کی تقسیم دکھاتے ہیں۔
> 🎓 نوٹ کریں کہ اس مثال میں KDE (Kernel Density Estimate) گراف استعمال ہوتا ہے جو ڈیٹا کو مسلسل احتمال کثافت منحنی کے ذریعے ظاہر کرتا ہے۔ یہ متعدد تقسیمی حالتوں پر کام کرتے ہوئے ڈیٹا کی تشریح کرنے میں مدد دیتا ہے۔
عمومی طور پر، تینوں genres اپنی popularity اور danceability کے لحاظ سے غیر سخت طریقے سے ہم آہنگ ہیں۔ اس غیر سخت ہم آہنگ ڈیٹا میں کلسٹرز کا تعین ایک چیلنج ہوگا:
![distribution](../../../../translated_images/ur/distribution.9be11df42356ca95.webp)
1. ایک scatter plot بنائیں:
```python
sns.FacetGrid(df, hue="artist_top_genre", height=5) \
.map(plt.scatter, "popularity", "danceability") \
.add_legend()
```
ایک scatterplot اسی محوروں کا مشابہت والا پیٹرن ظاہر کرتا ہے۔
![Facetgrid](../../../../translated_images/ur/facetgrid.9b2e65ce707eba1f.webp)
عام طور پر، کلسٹرنگ کے لیے آپ scatterplots کا استعمال کر سکتے ہیں تاکہ ڈیٹا کے گروہوں کو دکھایا جا سکے، لہٰذا اس قسم کی visualization پر عبور حاصل کرنا بہت مفید ہے۔ اگلے سبق میں، ہم اس فلٹر شدہ ڈیٹا کا استعمال کرتے ہوئے k-means clustering سے ایسے گروہ دریافت کریں گے جو دلچسپ طریقوں سے overlap کرتے ہوں۔
---
## 🚀چیلنج
اگلے سبق کی تیاری کے لیے، مختلف کلسٹرنگ الگوردمز کے بارے میں ایک چارٹ بنائیں جو آپ دریافت کر سکتے ہیں اور پروڈکشن ماحول میں استعمال کر سکتے ہیں۔ کلسٹرنگ کون سے مسائل حل کرنے کی کوشش کر رہی ہے؟
## [سبق کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
## جائزہ اور خود مطالعہ
کلسٹرنگ الگوردمز کو لاگو کرنے سے پہلے، جیسا کہ ہم نے سیکھا، یہ سمجھنا اچھا خیال ہے کہ آپ کا ڈیٹا سیٹ کس نوعیت کا ہے۔ اس موضوع پر مزید پڑھیں [یہاں](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
[یہ مددگار آرٹیکل](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) آپ کو مختلف کلسٹرنگ الگوردمز کے رویے کے بارے میں بتاتا ہے، جو مختلف ڈیٹا کی شکلوں کے لحاظ سے مختلف ہوتے ہیں۔
## اسائنمنٹ
[کلسٹرنگ کے لیے دیگر visualization کی تحقیق کریں](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ڈس کلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔
<!-- CO-OP TRANSLATOR DISCLAIMER END -->