32 KiB
کلسٹرنگ کا تعارف
کلسٹرنگ ایک قسم کی غیر نگران سیکھنے ہے جو فرض کرتی ہے کہ ڈیٹاسیٹ لیبل نہیں شدہ ہے یا اس کے ان پٹ پہلے سے متعین نتائج کے ساتھ مطابقت نہیں رکھتے۔ یہ مختلف الگورتھمز کا استعمال کرکے لیبل نہ شدہ ڈیٹا میں نمونوں کے مطابق گروہ بندی فراہم کرتی ہے۔
🎥 ویڈیو کے لیے اوپر تصویر پر کلک کریں۔ جب آپ کلسٹرنگ کے ساتھ مشین لرننگ کا مطالعہ کر رہے ہیں، تو کچھ نائجیرین ڈانس ہال ٹریکس سے لطف اندوز ہوں - یہ PSquare کا 2014 کا بہت مقبول گانا ہے۔
پری لیکچر کوئز
تعارف
کلسٹرنگ ڈیٹا کی کھوج کے لیے بہت مفید ہے۔ آئیے دیکھتے ہیں کہ کیا یہ نائجیرین سامعین کے موسیقی کے استعمال میں رجحانات اور پیٹرنز کی دریافت میں مدد دے سکتی ہے۔
✅ کلسٹرنگ کے استعمالات کے بارے میں ایک منٹ سوچیں۔ حقیقی زندگی میں، کلسٹرنگ اس وقت ہوتی ہے جب آپ کے پاس کپڑوں کا ڈھیر ہوتا ہے اور آپ کو اپنے خاندان کے افراد کے کپڑوں کو الگ کرنا ہوتا ہے 🧦👕👖🩲۔ ڈیٹا سائنس میں، کلسٹرنگ اس وقت ہوتی ہے جب صارف کی ترجیحات کا تجزیہ کرنے یا کسی لیبل نہ شدہ ڈیٹاسیٹ کی خصوصیات کا تعین کرنے کی کوشش کی جاتی ہے۔ کلسٹرنگ ایک طرح سے بدنظمی کو سمجھنے میں مدد دیتی ہے، جیسے موزے کے دراج کا نظم کرنا۔
🎥 ویڈیو کے لیے اوپر تصویر پر کلک کریں: MIT کے جان گوٹینگ کلسٹرنگ کا تعارف کرواتے ہیں۔
پیشہ ورانہ ماحول میں، کلسٹرنگ مارکیٹ تقسیم، مثلاً مختلف عمر کے گروہوں کے خریدنے والے اشیاء کا تعین کرنے کے لیے استعمال کی جا سکتی ہے۔ ایک اور استعمال انومی لی پایا جانا ہو سکتا ہے، مثلاً کریڈٹ کارڈ لین دین کے ڈیٹاسیٹ سے دھوکہ دہی کا پتہ لگانا۔ یا آپ کلسٹرنگ میڈیکل سکینز کے ایک بیچ میں ٹیومرز کا تعین کرنے کے لیے استعمال کر سکتے ہیں۔
✅ ایک منٹ سوچیں کہ آپ نے بینکنگ، ای کامرس، یا کاروباری ماحول میں کلسٹرنگ کا سامنا کس طرح کیا ہو گا۔
🎓 دلچسپ بات یہ ہے کہ کلسٹر تجزیہ 1930 کی دہائی میں انسانیات اور نفسیات کے شعبوں سے آیا تھا۔ کیا آپ تصور کر سکتے ہیں کہ اسے کیسے استعمال کیا گیا ہوگا؟
متبادل طور پر، آپ اسے تلاش کے نتائج کو گروپ کرنے کے لیے استعمال کر سکتے ہیں - جیسے خریداری کے لنکس، تصاویر، یا جائزے۔ کلسٹرنگ اس وقت مفید ہے جب آپ کے پاس ایک بڑا ڈیٹاسیٹ ہو جسے آپ کم کرنا چاہتے ہیں اور جس پر مزید تفصیلی تجزیہ کرنا چاہتے ہیں، تاکہ دیگر ماڈلز بنانے سے پہلے ڈیٹا کے بارے میں سیکھا جا سکے۔
✅ جب آپ کا ڈیٹا کلسٹروں میں منظم ہو جاتا ہے، تو آپ اسے ایک کلسٹر آئی ڈی دیتے ہیں، اور یہ تکنیک ڈیٹاسیٹ کی پرائیویسی برقرار رکھنے میں بھی مفید ہو سکتی ہے؛ آپ ایک ڈیٹا پوائنٹ کا حوالہ اس کے کلسٹر آئی ڈی سے دے سکتے ہیں، بجائے اس کے کہ زیادہ ظاہر کرنے والے شناختی ڈیٹا سے۔ کیا آپ دوسرا کوئی وجہ سوچ سکتے ہیں جس کی بنا پر آپ کلسٹر آئی ڈی کو دیگر عناصر کی بجائے پہچاننے کے لیے استعمال کریں؟
کلسٹرنگ تکنیک کی اپنی سمجھ کو گہرا کرنے کے لیے اس لرن ماڈیول کو دیکھیں۔
کلسٹرنگ کے ساتھ آغاز
Scikit-learn ایک وسیع اقسام کے طریقے فراہم کرتا ہے کلسٹرنگ کرنے کے لیے۔ آپ جو قسم منتخب کریں گے وہ آپ کے استعمال کے کیس پر منحصر ہوگی۔ دستاویزات کے مطابق، ہر طریقہ کار کے مختلف فوائد ہیں۔ یہاں Scikit-learn کے ذریعہ سپورٹ کیے جانے والے طریقوں اور ان کے مناسب استعمال کے کیسز کی ایک سادہ جدول ہے:
| طریقہ کار کا نام | استعمال کا کیس |
|---|---|
| K-Means | عمومی مقصد، استقرائی |
| Affinity propagation | بہت سے، غیر مساوی کلسٹرز، استقرائی |
| Mean-shift | بہت سے، غیر مساوی کلسٹرز، استقرائی |
| Spectral clustering | چند، مساوی کلسٹرز، انتقالی |
| Ward hierarchical clustering | بہت سے، محدود کلسٹرز، انتقالی |
| Agglomerative clustering | بہت سے، محدود، غیر ایکیلیڈین فاصلہ، انتقالی |
| DBSCAN | غیر فلیٹ جیومیٹری، غیر مساوی کلسٹرز، انتقالی |
| OPTICS | غیر فلیٹ جیومیٹری، مختلف کثافت کے ساتھ غیر مساوی کلسٹرز، انتقالی |
| Gaussian mixtures | فلیٹ جیومیٹری، استقرائی |
| BIRCH | بڑے ڈیٹاسیٹ کے ساتھ آؤٹ لائیرز، استقرائی |
🎓 ہم کلسٹرز کیسے بناتے ہیں اس کا بہت تعلق اس بات سے ہے کہ ہم ڈیٹا پوائنٹس کو گروہوں میں کیسے جمع کرتے ہیں۔ آئیے کچھ الفاظ کھولتے ہیں:
🎓 'انتقالی' بمقابلہ 'استقرائی'
انتقالی استنتاج مشاہدہ شدہ تربیتی کیسز سے ماخوذ ہوتا ہے جو مخصوص ٹیسٹ کیسز سے مماثل ہوتے ہیں۔ استقرائی استنتاج تربیتی کیسز سے ماخوذ ہوتا ہے جو عمومی قواعد کو ظاہر کرتے ہیں جو بعد میں ٹیسٹ کیسز پر لاگو ہوتے ہیں۔
ایک مثال: تصور کریں کہ آپ کے پاس ایک ڈیٹاسیٹ جزوی طور پر لیبل شدہ ہے۔ کچھ چیزیں 'ریکارڈز' ہیں، کچھ 'سی ڈیز' ہیں، اور کچھ خالی ہیں۔ آپ کا کام خالی جگہوں کے لیے لیبل فراہم کرنا ہے۔ اگر آپ استقرائی طریقہ اپنائیں گے، تو آپ ایک ماڈل کو 'ریکارڈز' اور 'سی ڈیز' تلاش کرنے کی تربیت دیں گے، اور ان لیبلز کو اپنے غیر لیبل شدہ ڈیٹا پر لاگو کریں گے۔ یہ طریقہ 'کیسٹ' کی درجہ بندی میں مشکل پیش آئے گا۔ دوسری طرف، ایک انتقالی طریقہ اس غیر معلوم ڈیٹا کو زیادہ مؤثر طریقے سے سنبھالتا ہے کیونکہ یہ ایک دوسرے جیسے اشیاء کو گروہ بند کرتا ہے اور پھر گروہ کو لیبل دیتا ہے۔ اس صورت میں، کلسٹرز ممکنہ طور پر 'گول موسیقی کی اشیاء' اور 'چوکور موسیقی کی اشیاء' کی عکاسی کر سکتے ہیں۔
🎓 'غیر فلیٹ' بمقابلہ 'فلیٹ' جیومیٹری
ریاضی کی اصطلاحات سے ماخوذ، غیر فلیٹ بمقابلہ فلیٹ جیومیٹری کا مطلب پوائنٹس کے درمیان فاصلے کی پیمائش 'فلیٹ' (یونی کلیدی) یا 'غیر فلیٹ' (غیر یونی کلیدی) جیومیٹرک طریقوں سے ہوتا ہے۔
یہاں 'فلیٹ' یونی کلیدی جیومیٹری کی طرف اشارہ کرتا ہے (جس کے حصے کو 'ہموار' جیومیٹری کے طور پر پڑھایا جاتا ہے)، اور غیر فلیٹ غیر یونی کلیدی جیومیٹری کو کہتے ہیں۔ جیومیٹری کا کیا تعلق مشین لرننگ سے ہے؟ چونکہ دونوں شعبے ریاضی پر مبنی ہیں، فاصلے کی پیمائش کا ایک عام طریقہ ہونا چاہیے، جو ڈیٹا کی نوعیت کے مطابق 'فلیٹ' یا 'غیر فلیٹ' ہو سکتا ہے۔ یونی کلیدی فاصلے دو نقاط کے درمیان لائن کا لمبائی ناپتے ہیں۔ غیر یونی کلیدی فاصلے خم دار راستے پر ناپے جاتے ہیں۔ اگر آپ کا ڈیٹا ویژولائز کیا جائے اور وہ کسی طیارے پر موجود نہ لگے تو آپ کو اسے سنبھالنے کے لیے خصوصی الگورتھم استعمال کرنے کی ضرورت ہو سکتی ہے۔
انفورگرافک از داسانی مادپلی
🎓 'فاصلہ'
کلسٹرز فاصلہ میٹرکس سے متعین ہوتے ہیں، جیسے کہ پوائنٹس کے درمیان فاصلے۔ یہ فاصلے چند طریقوں سے ناپے جا سکتے ہیں۔ یونی کلیدی کلسٹرز پوائنٹ کی اوسط کی بنیاد پر متعین ہوتے ہیں اور ایک 'سنٹروئڈ' یا مرکز نقطہ رکھتے ہیں۔ فاصلے سنٹروئڈ تک فاصلے سے ناپے جاتے ہیں۔ غیر یونی کلیدی فاصلے 'کلسٹروئیڈز' کو کہتے ہیں، جو دوسرے پوائنٹس کے قریب ترین پوائنٹ ہوتا ہے۔ کلسٹروئڈز بھی مختلف طریقوں سے متعین کیے جا سکتے ہیں۔
🎓 'محدود'
محدود کلسٹرنگ اس غیر نگران طریقہ میں 'نصف نگران' سیکھنے کو شامل کرتی ہے۔ پوائنٹس کے درمیان تعلقات کو 'لنک نہیں کر سکتے' یا 'لنک کرنا ضروری ہے' کے طور پر نشان زد کیا جاتا ہے تاکہ کچھ قواعد ڈیٹاسیٹ پر لاگو ہوں۔
ایک مثال: اگر کسی الگورتھم کو بغیر لیبل یا نصف لیبل شدہ ڈیٹا پر آزاد چھوڑ دیا جائے، تو اس کے بنائے ہوئے کلسٹر کم معیار کے ہو سکتے ہیں۔ مذکورہ مثال میں، کلسٹر 'گول موسیقی کی اشیاء'، 'چوکور موسیقی کی اشیاء'، 'تکویناتی اشیاء'، اور 'کوکیز' میں تقسیم کر سکتے ہیں۔ اگر کچھ پابندیاں یا قواعد دیے جائیں ("آئٹم پلاسٹک کا ہونا چاہیے"، "آئٹم موسیقی پیدا کرنے کے قابل ہونا چاہیے") تو یہ الگورتھم کو بہتر فیصلے کرنے کے لیے مدد دیتا ہے۔
🎓 'کثافت'
ایسا ڈیٹا جو 'شور والا' ہو اسے 'گنجان' سمجھا جاتا ہے۔ اس کے کلسٹرز میں پوائنٹس کے درمیان فاصلے سے پتہ چلتا ہے کہ یہ زیادہ یا کم گنجان، یا 'بھانڈیدہ' ہیں، اور اسے مناسب کلسٹرنگ طریقہ سے تجزیہ کرنے کی ضرورت ہوتی ہے۔ یہ مضمون شور والے ڈیٹاسیٹ کے لیے K-Means کلسٹرنگ اور HDBSCAN الگورتھمز کے مابین فرق کو واضح کرتا ہے جو مختلف کلسٹر کثافت رکھتے ہیں۔
کلسٹرنگ الگورتھمز
ایک سو سے زائد کلسٹرنگ الگورتھمز موجود ہیں، اور ان کا استعمال دستیاب ڈیٹا کی نوعیت پر منحصر ہوتا ہے۔ آئیے کچھ اہم الگورتھمز پر بات کرتے ہیں:
-
ہائرارکل کلسٹرنگ۔ اگر کسی شے کو اس کے قریبی شے کی قربت سے درجہ بند کیا جائے، نہ کہ دور کی چیز سے، تو کلسٹرز اس کے ممبرز کے ایک دوسرے سے فاصلے کی بنیاد پر بنتے ہیں۔ Scikit-learn کا Agglomerative کلسٹرنگ ہائرارکل ہے۔
انفورگرافک از داسانی مادپلی
-
سنٹروئڈ کلسٹرنگ۔ یہ مشہور الگورتھم 'k' کا انتخاب چاہتا ہے، یعنی بننے والے کلسٹروں کی تعداد، جس کے بعد الگورتھم کلسٹر کے مرکز کا تعین کرتا ہے اور اس نقطہ کے ارد گرد ڈیٹا اکٹھا کرتا ہے۔ K-means کلسٹرنگ سنٹروئڈ کلسٹرنگ کا ایک مقبول ورژن ہے۔ مرکز قریبی اوسط کی بنیاد پر متعین ہوتا ہے، اسی لیے اس کا نام ہے۔ کلسٹر سے مربع فاصلہ کم سے کم ہوتا ہے۔
انفورگرافک از داسانی مادپلی
-
تقسیمی بنیاد پر کلسٹرنگ۔ شماریاتی ماڈلنگ پر مبنی، یہ طریقہ تعین کرتا ہے کہ کسی ڈیٹا پوائنٹ کا کسی کلسٹر سے تعلق کتنا ممکن ہے، اور اس کے مطابق اس کا تعین کرتا ہے۔ Gaussian mixture اس قسم میں آتا ہے۔
-
کثافت بنیاد پر کلسٹرنگ۔ پوائنٹس کو کلسٹرز میں ان کی کثافت، یعنی ایک دوسرے کے گرد گروہ بندی کی بنیاد پر تقسیم کیا جاتا ہے۔ گروہ سے دور موجود پوائنٹس کو 'آؤٹ لائرز' یا 'شور' سمجھا جاتا ہے۔ DBSCAN، Mean-shift، اور OPTICS اس قسم کی کلسٹرنگ میں آتے ہیں۔
-
گرڈ بنیاد پر کلسٹرنگ۔ کثیر البعدی ڈیٹاسیٹس کے لیے، ایک گرڈ بنایا جاتا ہے اور ڈیٹا کو گرڈ کے خانوں میں تقسیم کیا جاتا ہے، اس طرح کلسٹرز بنتے ہیں۔
مشق - اپنے ڈیٹا کو کلسٹر کریں
کلسٹرنگ ایک تکنیک ہے جس میں مناسب بصری نمائندگی بہت مدد دیتی ہے، تو آئیے اپنے موسیقی کے ڈیٹا کو ویژولائز کرنے سے شروع کرتے ہیں۔ یہ مشق ہمیں فیصلہ کرنے میں مدد دے گی کہ کلسٹرنگ کے کن طریقوں کو اس ڈیٹا کی نوعیت کے لیے سب سے مؤثر طریقے سے استعمال کیا جائے۔
-
اس فولڈر میں موجود notebook.ipynb فائل کھولیں۔
-
Seabornپیکج کو درآمد کریں تاکہ ڈیٹا کی اچھی بصری نمائندگی ہو سکے۔!pip install seaborn -
nigerian-songs.csv سے گانوں کے ڈیٹا کو شامل کریں۔ کچھ گانوں کے بارے میں ڈیٹافریم لوڈ کریں۔ لائبریریاں درآمد کریں اور ڈیٹا کو باہر نکال کر تیار ہو جائیں:
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 -
ڈیٹافریم کے بارے میں کچھ معلومات حاصل کریں،
info()کال کرکے:df.info()آؤٹ پٹ کچھ یوں دکھائی دیتا ہے:
<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 -
خالی (null) ویلیوز ڈبل چیک کریں،
isnull()کال کرکے اور اس کا سم 0 ہونے کی تصدیق کریں:df.isnull().sum()ٹھیک لگ رہا ہے:
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 -
ڈیٹا کی وضاحت کریں:
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' ہو سکتی ہے، جو ایسے گانوں کو ظاہر کرتی ہے جن کی کوئی رینکنگ نہیں ہے۔ آئیے جلد ہی انہیں ہٹا دیتے ہیں۔
-
سب سے زیادہ مقبول genres معلوم کرنے کے لئے بارپلاٹ استعمال کریں:
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')
✅ اگر آپ زیادہ ٹاپ ویلیوز دیکھنا چاہتے ہیں، تو ٹاپ [:5] کو بڑا کر دیں، یا اسے ہٹا کر سب دیکھیں۔
نوٹ کریں، جب سب سے اوپر والا genre 'Missing' بتایا گیا ہو، تو اس کا مطلب ہے کہ Spotify نے اسے classify نہیں کیا، لہٰذا اسے ہٹا دیں۔
-
گمشدہ ڈیٹا سے چھٹکارا پائیں فلٹر کر کے
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 دوبارہ چیک کریں:
-
اب تک، اوپر کے تین genres اس ڈیٹا سیٹ پر غالب ہیں۔ آئیے
afro dancehall,afropop, اورnigerian popپر توجہ دیں، اور اضافی طور پر ایسے ڈیٹا کو فلٹر کریں جس کی popularity ویلیو 0 ہو (یعنی اسے ڈیٹا سیٹ میں کوئی محبوبیت نہیں دی گئی اور ہمارے مقاصد کے لیے شور سمجھا جا سکتا ہے):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') -
تیز جانچ کریں کہ آیا ڈیٹا کسی خاص طاقتور طریقے سے correlate کرتا ہے:
corrmat = df.corr(numeric_only=True) f, ax = plt.subplots(figsize=(12, 9)) sns.heatmap(corrmat, vmax=.8, square=True)واحد مضبوط correlation
energyاورloudnessکے درمیان ہے، جو زیادہ حیران کن نہیں کیونکہ شور مچانے والی موسیقی عام طور پر بہت توانائی بخش ہوتی ہے۔ ورنہ، correlations نسبتاً کمزور ہیں۔ دیکھنا دلچسپ ہوگا کہ کلسٹرنگ الگوردم اس ڈیٹا کا کیا فائدہ اٹھا سکتا ہے۔🎓 یاد رکھیں correlation مطلب causation نہیں ہوتا! ہمارے پاس correlation کا ثبوت ہے لیکن causation کا نہیں۔ ایک مزاحیہ ویب سائٹ کچھ بصری پیش کرتی ہے جو اس بات پر زور دیتی ہے۔
کیا اس ڈیٹا سیٹ میں کسی گانے کی محسوس شدہ مقبولیت اور danceability کے درمیان کوئی ارتکاز ہے؟ ایک FacetGrid دکھاتی ہے کہ concentric circles ہیں جو لائن اپ کرتے ہیں، genre کی پرواہ کیے بغیر۔ کیا ہو سکتا ہے کہ نائجیریائی ذائقے اس genre کے لیے ایک مخصوص سطح کی danceability پر ملتے جلتے ہوں؟
✅ مختلف ڈیٹا پوائنٹس (energy, loudness, speechiness) اور مزید یا مختلف موسیقی کے genres آزما کر دیکھیں۔ آپ کیا دریافت کر سکتے ہیں؟ عام ڈیٹا پوائنٹس کی تقسیم دیکھنے کے لیے df.describe() جدول ملاحظہ کریں۔
مشق - ڈیٹا کی تقسیم
کیا یہ تینوں genres اپنی danceability کی perception میں اپنی popularity کی بنیاد پر نمایاں طور پر مختلف ہیں؟
-
اپنی ٹاپ تین genres کی popularity اور danceability کی ڈیٹا تقسیم دی گئی x اور y محور پر جانچیں۔
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 کے لحاظ سے غیر سخت طریقے سے ہم آہنگ ہیں۔ اس غیر سخت ہم آہنگ ڈیٹا میں کلسٹرز کا تعین ایک چیلنج ہوگا:
-
ایک scatter plot بنائیں:
sns.FacetGrid(df, hue="artist_top_genre", height=5) \ .map(plt.scatter, "popularity", "danceability") \ .add_legend()ایک scatterplot اسی محوروں کا مشابہت والا پیٹرن ظاہر کرتا ہے۔
عام طور پر، کلسٹرنگ کے لیے آپ scatterplots کا استعمال کر سکتے ہیں تاکہ ڈیٹا کے گروہوں کو دکھایا جا سکے، لہٰذا اس قسم کی visualization پر عبور حاصل کرنا بہت مفید ہے۔ اگلے سبق میں، ہم اس فلٹر شدہ ڈیٹا کا استعمال کرتے ہوئے k-means clustering سے ایسے گروہ دریافت کریں گے جو دلچسپ طریقوں سے overlap کرتے ہوں۔
🚀چیلنج
اگلے سبق کی تیاری کے لیے، مختلف کلسٹرنگ الگوردمز کے بارے میں ایک چارٹ بنائیں جو آپ دریافت کر سکتے ہیں اور پروڈکشن ماحول میں استعمال کر سکتے ہیں۔ کلسٹرنگ کون سے مسائل حل کرنے کی کوشش کر رہی ہے؟
سبق کے بعد کا کوئز
جائزہ اور خود مطالعہ
کلسٹرنگ الگوردمز کو لاگو کرنے سے پہلے، جیسا کہ ہم نے سیکھا، یہ سمجھنا اچھا خیال ہے کہ آپ کا ڈیٹا سیٹ کس نوعیت کا ہے۔ اس موضوع پر مزید پڑھیں یہاں
یہ مددگار آرٹیکل آپ کو مختلف کلسٹرنگ الگوردمز کے رویے کے بارے میں بتاتا ہے، جو مختلف ڈیٹا کی شکلوں کے لحاظ سے مختلف ہوتے ہیں۔
اسائنمنٹ
کلسٹرنگ کے لیے دیگر visualization کی تحقیق کریں
ڈس کلیمر: یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔









