34 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 الگورتھمز کے استعمال کے فرق کو ظاہر کرتا ہے۔
کلسٹرنگ الگورتھمز
کلسٹرنگ کے 100 سے زیادہ الگورتھمز ہیں، اور ان کا استعمال ڈیٹا کی نوعیت پر منحصر ہے۔ آئیے کچھ اہم الگورتھمز پر بات کرتے ہیں:
-
درجہ بندی کلسٹرنگ۔ اگر کسی چیز کو اس کے قریب موجود چیز کے قریب ہونے کی بنیاد پر درجہ بندی کیا جاتا ہے، بجائے اس کے کہ وہ دور ہو، کلسٹرز ان کے اراکین کے دوسرے اشیاء سے فاصلے کی بنیاد پر بنائے جاتے ہیں۔ 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()
ڈیٹا کی پہلی چند لائنیں چیک کریں:
نام البم آرٹسٹ آرٹسٹ کا اعلیٰ صنف ریلیز کی تاریخ لمبائی مقبولیت ڈانس ایبلٹی ایکوسٹکنیس توانائی انسٹرومنٹلنیس لائیونیس لاؤڈنیس اسپیچنیس ٹیمپو وقت کا دستخط 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 2 LITT! LITT! AYLØ indie r&b 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 nigerian pop 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) afropop 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
-
خالی قدروں کو دوبارہ چیک کریں،
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
🤔 اگر ہم کلسٹرنگ کے ساتھ کام کر رہے ہیں، جو ایک غیر نگرانی شدہ طریقہ ہے اور لیبل شدہ ڈیٹا کی ضرورت نہیں ہوتی، تو ہم یہ ڈیٹا لیبلز کے ساتھ کیوں دکھا رہے ہیں؟ ڈیٹا کی تلاش کے مرحلے میں یہ مددگار ثابت ہوتے ہیں، لیکن کلسٹرنگ الگورتھمز کے کام کرنے کے لیے یہ ضروری نہیں ہیں۔ آپ آسانی سے کالم ہیڈرز کو ہٹا سکتے ہیں اور ڈیٹا کو کالم نمبر کے ذریعے حوالہ دے سکتے ہیں۔
ڈیٹا کی عمومی قدروں کو دیکھیں۔ نوٹ کریں کہ مقبولیت '0' ہو سکتی ہے، جو ان گانوں کو ظاہر کرتی ہے جن کی کوئی درجہ بندی نہیں ہے۔ آئیے جلد ہی ان کو ہٹا دیں۔
-
سب سے زیادہ مقبول انواع جاننے کے لیے بار پلاٹ استعمال کریں:
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]
کو کسی بڑی قدر میں تبدیل کریں، یا سب دیکھنے کے لیے اسے ہٹا دیں۔
نوٹ کریں، جب ٹاپ صنف کو 'Missing' کے طور پر بیان کیا جاتا ہے، تو اس کا مطلب ہے کہ Spotify نے اسے درجہ بندی نہیں کیا، تو آئیے اسے ہٹا دیں۔
-
گمشدہ ڈیٹا کو فلٹر کرکے ہٹا دیں
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')
اب انواع کو دوبارہ چیک کریں:
-
واضح طور پر، ٹاپ تین انواع اس ڈیٹا سیٹ پر حاوی ہیں۔ آئیے
afro dancehall
،afropop
، اورnigerian pop
پر توجہ مرکوز کریں، اور اضافی طور پر ڈیٹا سیٹ کو فلٹر کریں تاکہ کسی بھی چیز کو ہٹا دیا جائے جس کی مقبولیت کی قدر 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')
-
ایک فوری ٹیسٹ کریں تاکہ یہ دیکھ سکیں کہ ڈیٹا کسی خاص طور پر مضبوط طریقے سے تعلق رکھتا ہے:
corrmat = df.corr(numeric_only=True) f, ax = plt.subplots(figsize=(12, 9)) sns.heatmap(corrmat, vmax=.8, square=True)
واحد مضبوط تعلق
energy
اورloudness
کے درمیان ہے، جو زیادہ حیران کن نہیں ہے، کیونکہ بلند موسیقی عام طور پر کافی توانائی بخش ہوتی ہے۔ ورنہ، تعلقات نسبتاً کمزور ہیں۔ یہ دیکھنا دلچسپ ہوگا کہ کلسٹرنگ الگورتھم اس ڈیٹا سے کیا بنا سکتا ہے۔🎓 نوٹ کریں کہ تعلق کا مطلب وجہ نہیں ہے! ہمارے پاس تعلق کا ثبوت ہے لیکن وجہ کا کوئی ثبوت نہیں۔ ایک دلچسپ ویب سائٹ کچھ بصریات فراہم کرتی ہے جو اس نکتے پر زور دیتی ہیں۔
کیا اس ڈیٹا سیٹ میں گانے کی مقبولیت اور ڈانس ایبلٹی کے بارے میں کوئی ہم آہنگی ہے؟ ایک FacetGrid سے پتہ چلتا ہے کہ کچھ ہم مرکز دائرے ترتیب میں ہیں، چاہے صنف کچھ بھی ہو۔ کیا یہ ہو سکتا ہے کہ نائجیرین ذوق اس صنف کے لیے ڈانس ایبلٹی کی ایک خاص سطح پر ہم آہنگ ہو؟
✅ مختلف ڈیٹا پوائنٹس (energy، loudness، speechiness) اور مزید یا مختلف موسیقی کی انواع آزمائیں۔ آپ کیا دریافت کر سکتے ہیں؟ df.describe()
ٹیبل پر ایک نظر ڈالیں تاکہ ڈیٹا پوائنٹس کے عمومی پھیلاؤ کو دیکھ سکیں۔
مشق - ڈیٹا کی تقسیم
کیا ان تین انواع میں ان کی ڈانس ایبلٹی کی مقبولیت کے بارے میں نمایاں فرق ہے؟
-
ہماری ٹاپ تین انواع کے ڈیٹا کی تقسیم کو مقبولیت اور ڈانس ایبلٹی کے لیے ایک دیے گئے x اور y محور کے ساتھ جانچیں۔
sns.set_theme(style="ticks") g = sns.jointplot( data=df, x="popularity", y="danceability", hue="artist_top_genre", kind="kde", )
آپ ہم مرکز دائرے دریافت کر سکتے ہیں جو ایک عمومی ہم آہنگی کے نقطہ کے ارد گرد ترتیب میں ہیں، جو پوائنٹس کی تقسیم کو ظاہر کرتے ہیں۔
🎓 نوٹ کریں کہ اس مثال میں ایک KDE (Kernel Density Estimate) گراف استعمال کیا گیا ہے جو ڈیٹا کو ایک مسلسل احتمال کثافت منحنی کے ذریعے ظاہر کرتا ہے۔ یہ ہمیں متعدد تقسیمات کے ساتھ کام کرتے وقت ڈیٹا کو سمجھنے کی اجازت دیتا ہے۔
عمومی طور پر، تینوں انواع اپنی مقبولیت اور ڈانس ایبلٹی کے لحاظ سے ڈھیلے طور پر ہم آہنگ ہیں۔ اس ڈھیلے سے ہم آہنگ ڈیٹا میں کلسٹرز کا تعین کرنا ایک چیلنج ہوگا:
-
ایک اسکیٹر پلاٹ بنائیں:
sns.FacetGrid(df, hue="artist_top_genre", height=5) \ .map(plt.scatter, "popularity", "danceability") \ .add_legend()
انہی محوروں کا ایک اسکیٹر پلاٹ ایک جیسا ہم آہنگی کا نمونہ دکھاتا ہے
عمومی طور پر، کلسٹرنگ کے لیے، آپ ڈیٹا کے کلسٹرز کو ظاہر کرنے کے لیے اسکیٹر پلاٹس استعمال کر سکتے ہیں، لہذا اس قسم کی بصری کاری میں مہارت حاصل کرنا بہت مفید ہے۔ اگلے سبق میں، ہم اس فلٹر شدہ ڈیٹا کو لیں گے اور k-means کلسٹرنگ کا استعمال کریں گے تاکہ اس ڈیٹا میں دلچسپ طریقوں سے اوورلیپ کرنے والے گروپس کو دریافت کیا جا سکے۔
🚀چیلنج
اگلے سبق کی تیاری کے لیے، مختلف کلسٹرنگ الگورتھمز کے بارے میں ایک چارٹ بنائیں جو آپ دریافت کر سکتے ہیں اور پروڈکشن ماحول میں استعمال کر سکتے ہیں۔ کلسٹرنگ کس قسم کے مسائل کو حل کرنے کی کوشش کر رہی ہے؟
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
کلسٹرنگ الگورتھمز کو لاگو کرنے سے پہلے، جیسا کہ ہم نے سیکھا، اپنے ڈیٹا سیٹ کی نوعیت کو سمجھنا ایک اچھا خیال ہے۔ اس موضوع پر مزید پڑھیں یہاں
یہ مددگار مضمون آپ کو مختلف ڈیٹا اشکال کے پیش نظر مختلف کلسٹرنگ الگورتھمز کے رویے کے بارے میں رہنمائی کرتا ہے۔
اسائنمنٹ
کلسٹرنگ کے لیے دیگر بصریات پر تحقیق کریں
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔