درجہ بندی کلسٹرنگ الگورتھم ازگر!

ماخذ نوڈ: 1055669

اس مضمون کے ایک حصے کے طور پر شائع کیا گیا تھا۔ ڈیٹا سائنس بلاگتھون

تعارف

اس مضمون میں، ہم K Means کلسٹرنگ کے لیے ایک مختلف نقطہ نظر کو دیکھیں گے جسے Hierarchical Clustering کہتے ہیں۔ K Means یا K Mode کے مقابلے میں، درجہ بندی کے کلسٹرنگ میں ایک مختلف بنیادی الگورتھم ہے کہ کلسٹرنگ میکانزم کیسے کام کرتا ہے۔ درجہ بندی کا جھرمٹ اجتماعی یا تقسیم کرنے والی تکنیکوں کا استعمال کرتا ہے، جب کہ K کا مطلب کلسٹر بنانے کے لیے سینٹروڈ اور یوکلیڈین فاصلے کے امتزاج کا استعمال کرتا ہے۔ ڈینڈروگرامس کو درجہ بندی کے جھرمٹ میں کلسٹرز کو دیکھنے کے لیے استعمال کیا جا سکتا ہے، جو معنی خیز درجہ بندی کے ذریعے نتائج کی بہتر تشریح میں مدد کر سکتا ہے۔ ڈینڈروگرام بناتے وقت ہمیں کلسٹرز کی تعداد بتانے کی ضرورت نہیں ہے۔

یہاں ہم Hierarchical Clustering Model کی وضاحت کے لیے Python کا استعمال کرتے ہیں۔ ہمارے ڈیٹاسیٹ میں 200 مال صارفین کا ڈیٹا ہے۔ ہر صارف کی کسٹمر آئی ڈی، صنف، عمر، سالانہ آمدنی، اور اخراجات کا سکور سبھی ڈیٹا فریم میں شامل ہیں۔ ان کے ہر کلائنٹ کے اخراجات کے اسکور کے لیے شمار کی جانے والی رقم کئی معیارات پر مبنی ہے، جیسے کہ ان کی آمدنی، وہ کتنی بار مال کا دورہ کرتے ہیں، اور ایک سال میں خرچ کی گئی رقم۔ یہ اسکور 1 سے 100 تک ہوتا ہے۔ کیونکہ ہم جوابات نہیں جانتے، اس لیے کاروباری مسئلہ کلسٹرنگ کا مسئلہ بن جاتا ہے۔ ڈیٹا کے حتمی زمرے ہمارے لیے نامعلوم ہیں۔ نتیجے کے طور پر، ہمارا مقصد کچھ پہلے سے نامعلوم کسٹمر کلسٹرز کو دریافت کرنا ہے۔

لیکن پہلے، ہم درجہ بندی کے جھرمٹ میں کچھ اہم اصطلاحات پر غور کرتے ہیں۔

ہیرارکیکل کلسٹرنگ میں اہم شرائط

ربط کے طریقے

اگر کلسٹر (a) میں (a) اصل مشاہدات a[0],…,a[|a|1] ہیں اور (b) اصل اشیاء b[0],…,b[|b|1] کلسٹر ( b)، پھر ہمیں دو کلسٹرز (a) اور (b) کے درمیان فاصلے کا حساب لگانا چاہیے تاکہ ان کو (b) ملایا جا سکے۔ آئیے کہتے ہیں کہ ایک نقطہ (d) ہے جو کسی بھی کلسٹر کو تفویض نہیں کیا گیا ہے۔ ہمیں یہ معلوم کرنے کی ضرورت ہوگی کہ کلسٹر (a) کلسٹر (d) سے اور کلسٹر (b) کلسٹر (d) سے کتنا دور ہے۔

کلسٹرز اب عام طور پر متعدد پوائنٹس پر مشتمل ہوتے ہیں، فاصلاتی میٹرکس کا حساب لگانے کے لیے ایک مختلف طریقہ کی ضرورت ہوتی ہے۔ وہ طریقہ جس کے ذریعے کلسٹرز کے درمیان فاصلہ، یا پوائنٹ ٹو کلسٹر فاصلے کا حساب لگایا جاتا ہے، ربط کے ذریعے متعین کیا جاتا ہے۔ ذیل میں سب سے زیادہ استعمال ہونے والے لنکج میکانزم میں سے کچھ ہیں:

سنگل ربط - سب سے زیادہ ملتے جلتے ممبروں کے درمیان فاصلوں کا حساب ہر جوڑے کے کلسٹرز کے لیے کیا جاتا ہے، اور پھر کلسٹرز کو سب سے کم فاصلے کی بنیاد پر ملایا جاتا ہے۔

اوسط ربط - ایک کلسٹر کے تمام ممبران اور دوسرے کلسٹر کے تمام ممبران کے درمیان فاصلے کا حساب لگایا جاتا ہے۔ اس کے بعد، ان فاصلوں کی اوسط کا استعمال اس بات کا تعین کرنے کے لیے کیا جاتا ہے کہ کون سے کلسٹر مل جائیں گے۔

مکمل ربط - کلسٹرز کے ہر جوڑے کے لیے، سب سے زیادہ مختلف اراکین کے درمیان فاصلوں کا حساب لگایا جاتا ہے، اور پھر کلسٹرز کو سب سے کم فاصلے کی بنیاد پر ملایا جاتا ہے۔

میڈین لنکیج - ہم اوسط فاصلے کے بجائے درمیانی فاصلہ اسی طرح استعمال کرتے ہیں جس طرح اوسط تعلق ہے۔

وارڈ لنکیج - تغیر کے طریقہ کار کے تجزیہ کا استعمال کرتے ہوئے کلسٹرز کے درمیان فاصلے کا تعین کرتا ہے۔

سینٹروڈ لنکیج - ہر کلسٹر کے سینٹرائڈ کا حساب کلسٹر کو تفویض کردہ تمام پوائنٹس کی اوسط سے لگایا جاتا ہے، اور پھر اس سینٹروڈ کا استعمال کرتے ہوئے کلسٹرز کے درمیان فاصلے کا حساب لگایا جاتا ہے۔

فاصلہ حساب

دو یا دو سے زیادہ کلسٹرز کے درمیان فاصلے کا حساب لگانے کے متعدد طریقے موجود ہیں، جس میں Euclidean Distance سب سے زیادہ مقبول ہے۔ دیگر فاصلاتی میٹرکس، جیسے منکووسکی، سٹی بلاک، ہیمنگ، جیکارڈ، اور چیبیشیو، کو بھی درجہ بندی کے جھرمٹ کے ساتھ استعمال کیا جا سکتا ہے۔ مختلف فاصلاتی میٹرکس کا اثر درجہ بندی کے جھرمٹ پر پڑتا ہے، جیسا کہ شکل 2 میں دکھایا گیا ہے۔

فاصلے کا حساب

ڈینڈروگرام

فیچر اسپیس میں اشیاء کے درمیان تعلق کو ڈینڈروگرام سے ظاہر کیا جاتا ہے۔ ایک خصوصیت کی جگہ میں، اس کا استعمال ترتیب وار ضم شدہ اشیاء کے ہر جوڑے کے درمیان فاصلہ دکھانے کے لیے کیا جاتا ہے۔ ڈینڈروگرام اکثر ڈیٹاسیٹ کے لیے کلسٹرز کی مناسب تعداد کا فیصلہ کرنے سے پہلے درجہ بندی کے کلسٹرز کی جانچ کرنے کے لیے استعمال ہوتے ہیں۔ ڈینڈرگرام فاصلہ دو کلسٹرز کے درمیان فاصلہ ہے جب وہ آپس میں مل جاتے ہیں۔ ڈینڈروگرام کا فاصلہ اس بات کا تعین کرتا ہے کہ آیا دو یا دو سے زیادہ کلسٹر ایک دوسرے سے جڑے ہوئے ہیں یا ایک ساتھ مل کر ایک کلسٹر بنا سکتے ہیں۔

مثال کے طور پر

اب ہم ہائرارکیکل کلسٹرنگ ماڈل کو ظاہر کرنے کے لیے ازگر کا استعمال کرتے ہوئے مثالیں دیکھتے ہیں۔ ہمارے پاس 200 مال صارفین کا ڈیٹا ہے۔ ڈیٹاسیٹ. ہر صارف کی کسٹمر آئی ڈی، صنف، عمر، سالانہ آمدنی، اور اخراجات کا سکور سبھی ڈیٹا فریم میں شامل ہیں۔ ان کے ہر کلائنٹ کے اخراجات کے اسکور کے حساب سے رقم کئی معیارات پر مبنی ہوتی ہے، جیسے کہ ان کی آمدنی، وہ کتنی بار مال کا دورہ کرتے ہیں، اور وہ رقم جو انہوں نے ایک سال کے لیے خرچ کی۔ یہ اسکور 1 سے 100 تک ہوتا ہے۔ کیونکہ ہم جوابات نہیں جانتے، اس لیے کاروباری مسئلہ کلسٹرنگ کا مسئلہ بن جاتا ہے۔

#1 لائبریریوں کو درآمد کرنا
numpy کو np کے طور پر درآمد کریں matplotlib.pyplot کو plt کے طور پر پی ڈی کے طور پر پانڈوں کو درآمد کریں
#2 مال_کسٹمرز ڈیٹاسیٹ کو پانڈوں کے ذریعے درآمد کرنا
dataset = pd.read_csv('Mall_Customers.csv') X = dataset.iloc[:, [3,4]].values

درجہ بندی کے جھرمٹ میں یہ نیا قدم کلسٹرز کی زیادہ سے زیادہ تعداد کا تعین کرنے میں بھی شامل ہے۔ ہم اس بار کہنی کا طریقہ استعمال نہیں کریں گے۔ ہم ڈینڈروگرام کا استعمال کریں گے۔

#3 کلسٹرز کی بہترین تعداد تلاش کرنے کے لیے ڈینڈروگرام کا استعمال۔ # پہلی چیز جو ہم کرنے جا رہے ہیں وہ ہے اسکائپی لائبریری کو درآمد کرنا۔ scipy ایک اوپن سورس # Python لائبریری ہے جس میں درجہ بندی کے کلسٹرنگ اور ڈینڈروگرامس بنانے کے ٹولز شامل ہیں۔ # صرف مطلوبہ ٹول درآمد کریں۔ scipy.cluster.hierarchy کو sch کے طور پر درآمد کریں۔ 
#آئیے ڈینڈروگرام ویری ایبل بناتے ہیں #لنکیج دراصل الگورتھم ہیررکیکل کلسٹرنگ کا ہے اور پھر #linkage میں ہمیں یہ بتانا ہوگا کہ ہم کس ڈیٹا پر لاگو اور مشغول ہیں۔ یہ ہے X ڈیٹاسیٹ dendrogram = sch.dendrogram(sch.linkage(X, method = "ward")) plt.title('Dendrogram') plt.xlabel('Customers') plt.ylabel('Euclidean فاصلے') plt۔ دکھائیں()

وارڈ کا طریقہ ایک ایسا طریقہ ہے جو ہر کلسٹر کے اندر فرق کو کم کرنے کی کوشش کرتا ہے۔ یہ تقریباً ویسا ہی ہے جب ہم نے اپنے کہنی کے طریقہ کار کے چارٹ کو پلاٹ کرنے کے لیے ڈبلیو سی ایس ایس کو کم سے کم کرنے کے لیے K-means استعمال کیا تھا۔ فرق صرف اتنا ہے کہ wcss کے بجائے، ہم کلسٹر کے اندر موجود مختلف حالتوں کو کم کر رہے ہیں۔ ہر کلسٹر کے اندر، یہ تغیر ہے۔ ڈینڈروگرام ذیل میں دکھایا گیا ہے۔

ڈینڈوگرام

صارفین کی نمائندگی x-axis پر کی جاتی ہے، اور کلسٹرز کے درمیان Euclidean فاصلے کو y-axis پر دکھایا جاتا ہے۔ ہم اس خاکہ کی بنیاد پر کلسٹرز کی بہترین تعداد کا کیسے پتہ لگاتے ہیں؟ ہم کسی بھی افقی لائنوں کو عبور کیے بغیر سب سے طویل عمودی فاصلہ تلاش کرنا چاہتے ہیں، جو اوپر دیے گئے خاکے میں سرخ فریم والی لکیر ہے۔ آئیے خاکے پر لائنوں کو گنتے ہیں اور معلوم کرتے ہیں کہ کتنے کلسٹر بہترین ہیں۔ اس ڈیٹاسیٹ کے لیے، کلسٹر نمبر 5 ہوگا۔

#4 Mall_Customes ڈیٹاسیٹ میں درجہ بندی کے کلسٹرنگ کو فٹ کرنا # درجہ بندی کے کلسٹرنگ کے لیے دو الگورتھم ہیں: Agglomerative Hierarchical Clustering اور # Divisive Hierarchical Clustering۔ ہم sklearn.cluster import AgglomerativeClustering hc = AgglomerativeClustering (n_clusters = 5, affinity = 'euclidean', linkage ='ward') سے اپنی # الگورتھم کلاس کے لیے Euclidean فاصلے اور وارڈ کا طریقہ منتخب کرتے ہیں # کلسٹرز ویکٹر بناتے وقت جو ہر گاہک کو بتاتا ہے کہ گاہک کس کلسٹر سے تعلق رکھتا ہے۔ y_hc=hc.fit_predict(X)
#5 کلسٹرز کا تصور کرنا۔ یہ کوڈ کے-مینز ویژولائزیشن کوڈ جیسا ہے۔ #ہم درجہ بندی کے کلسٹرنگ plt.scatter(X[y_hc==0, 0], X[y_hc==0, 1], s=100, c='red', label = 'کلسٹر 1') plt.scatter(X[y_hc==1, 0], X[y_hc==1, 1], s=100, c='blue', label ='Cluster 2') plt.scatter( X[y_hc==2, 0], X[y_hc==2, 1], s=100, c='green', label ='Cluster 3') plt.scatter(X[y_hc==3, 0] , X[y_hc==3, 1], s=100, c='cyan', label ='Cluster 4') plt.scatter(X[y_hc==4, 0], X[y_hc==4, 1 ], s=100, c='magenta', label ='Cluster 5') plt.title('گاہکوں کے جھرمٹ (حیرارکیکل کلسٹرنگ ماڈل)') plt.xlabel('سالانہ آمدنی(k$)') plt.ylabel ('خرچ کا اسکور (1-100') plt.show()
کلسٹرز | درجہ بندی کلسٹرنگ
کلسٹر 1 (سرخ)، کلسٹر 2 (بلیو)، کلسٹر 3 (سبز)، کلسٹر 4 (سیان)، کلسٹر 5 (میجنٹا)

ان کلسٹرز کو مال کے کسٹمر سیگمنٹ کے طور پر سوچا جا سکتا ہے۔

ایک معیاری ہیرارکیکل کلسٹرنگ ماڈل میں بس اتنا ہی ہے۔ ڈیٹاسیٹ کے ساتھ ساتھ تمام کوڈز گیتھب سیکشن میں دستیاب ہیں۔

نتیجہ

کسی بھی کلسٹرنگ مشق میں، کلسٹرز کی تعداد کا تعین ایک وقت طلب عمل ہے۔ چونکہ کاروبار کا تجارتی پہلو ان گروپوں سے معنی نکالنے سے زیادہ فکر مند ہے، اس لیے یہ ضروری ہے کہ کلسٹرز کو دو جہتوں میں دیکھیں اور دیکھیں کہ آیا وہ الگ ہیں۔ اس مقصد کو حاصل کرنے کے لیے PCA یا فیکٹر اینالیسس کا استعمال کیا جا سکتا ہے۔ مختلف اسٹیک ہولڈرز کے سامنے حتمی نتائج پیش کرنے کا یہ ایک عام طریقہ ہے، جس سے ہر کسی کے لیے آؤٹ پٹ استعمال کرنا آسان ہو جاتا ہے۔

اختتامی نوٹ

پڑھنے کے لئے شکریہ!
مجھے امید ہے کہ آپ نے مضمون کا لطف اٹھایا اور آپ کے علم میں اضافہ کیا.
براہ مہربانی بلا جھجھک مجھ سے رابطہ کریں۔ on دوستوں کوارسال کریں
کسی چیز کا ذکر نہیں کیا گیا ہے یا اپنے خیالات کا اشتراک کرنا چاہتے ہیں؟ ذیل میں تبصرہ کرنے کے لئے آزاد محسوس کریں اور میں آپ کے پاس واپس آؤں گا۔

مصنف کے بارے میں

ہاردک کمار ایم دھڑوک
ڈیٹا تجزیہ کار | ڈیجیٹل ڈیٹا تجزیہ ماہر | ڈیٹا سائنس سیکھنے والا
مجھ سے رابطہ کریں۔ لنکڈ
مجھ سے رابطہ کریں۔ Github کے

اس مضمون میں دکھایا گیا میڈیا Analytics ودھیا کی ملکیت نہیں ہے اور مصنف کی صوابدید پر استعمال کیا جاتا ہے۔

ماخذ: https://www.analyticsvidhya.com/blog/2021/08/hierarchical-clustering-algorithm-python/

ٹائم اسٹیمپ:

سے زیادہ تجزیات ودھیا