K-Means Elbow Method and Silhouette Analysis with Yellowbrick and Scikit-Learn PlatoBlockchain Data Intelligence. عمودی تلاش۔ عی

K- کا مطلب ہے کہنی کا طریقہ اور یلو برک اور سکِٹ کے ساتھ سلہیٹ تجزیہ

تعارف

K-Means سب سے زیادہ مقبول کلسٹرنگ الگورتھم میں سے ایک ہے۔ ایک جھرمٹ میں مرکزی پوائنٹس رکھنے سے، یہ دوسرے پوائنٹس کو اس مرکزی پوائنٹ تک ان کے فاصلے کی بنیاد پر گروپ کرتا ہے۔

K-Means کا ایک منفی پہلو کلسٹرز کی تعداد کا انتخاب کرنا ہے، K، الگورتھم چلانے سے پہلے جو گروپ پوائنٹ کرتا ہے۔

اگر آپ K-Means کلسٹرنگ کے بارے میں گہرائی سے گائیڈ پڑھنا چاہتے ہیں، تو اس پر ایک نظر ڈالیں۔ "K- کا مطلب Scikit-Learn کے ساتھ کلسٹرنگ".

کہنی کا طریقہ اور سلہیٹ تجزیہ

Ks کی تعداد کو منتخب کرنے کے لیے سب سے زیادہ استعمال ہونے والی تکنیکیں ہیں۔ کہنی کا طریقہ اور سلائیٹ تجزیہ.

Ks کے انتخاب کو آسان بنانے کے لیے، the پیلی برک لائبریری کوڈ کو لوپس کے ساتھ لپیٹ دیتی ہے اور ایک پلاٹ ہم عام طور پر کوڈ کی 4 لائنوں میں لکھتے ہیں۔

Jupyter نوٹ بک سے براہ راست ییلو برک انسٹال کرنے کے لیے، چلائیں:

! pip install yellowbrick

آئیے دیکھتے ہیں کہ یہ ایک مانوس ڈیٹاسیٹ کے لیے کیسے کام کرتا ہے جو پہلے ہی Scikit-learn کا حصہ ہے۔ IRIS ڈیٹاسیٹ

پہلا قدم ڈیٹاسیٹ کو درآمد کرنا ہے، KMeans اور yellowbrick لائبریریاں، اور ڈیٹا لوڈ کریں:

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from yellowbrick.cluster import KElbowVisualizer, SilhouetteVisualizer

iris = load_iris()

یہاں نوٹ کریں، ہم درآمد کرتے ہیں۔ KElbowVisualizer اور SilhouetteVisualizer سے yellowbrick.cluster، یہ وہ ماڈیول ہیں جو ہم کہنی اور سلہیٹ کے نتائج کو دیکھنے کے لیے استعمال کریں گے!

ڈیٹاسیٹ لوڈ کرنے کے بعد، میں data گروپ کی کلید (ایک ڈیٹا کی قسم جو لغت کی توسیع ہے) پوائنٹس کی قدریں ہیں جن کو ہم کلسٹر کرنا چاہتے ہیں۔ اگر آپ جاننا چاہتے ہیں کہ نمبر کس چیز کی نمائندگی کرتے ہیں تو اس پر ایک نظر ڈالیں۔ iris['feature_names'].

یہ معلوم ہے کہ Iris ڈیٹاسیٹ میں irises کی تین اقسام ہیں: 'versicolor'، 'virginica' اور 'setosa'۔ آپ کلاسز کا معائنہ بھی کر سکتے ہیں۔ iris['target_names'] پڑتال کرنا.

لہذا، ہمارے پاس کلسٹر کے لیے 4 خصوصیات ہیں اور انہیں 3 مختلف کلسٹرز میں الگ کیا جانا چاہیے جو ہم پہلے سے جانتے ہیں۔ آئیے دیکھتے ہیں کہ ایلبو میتھڈ اور سلہیٹ تجزیہ کے ساتھ ہمارے نتائج اس کی تصدیق کرتے ہیں۔

سب سے پہلے، ہم خصوصیت کی اقدار کو منتخب کریں گے:

print(iris['feature_names']) 
print(iris['target_names']) 

X = iris['data']

پھر، ہم ایک تشکیل دے سکتے ہیں KMeans ماڈل ، ا KElbowVisualizer() مثال کے طور پر جو اس ماڈل کو ks کی تعداد کے ساتھ وصول کرے گا جس کے لیے میٹرک کی گنتی کی جائے گی، اس معاملے میں سے کرنے 2 11 Ks

اس کے بعد، ہم استعمال کرتے ہوئے ڈیٹا کے ساتھ visualizer فٹ fit() اور اس کے ساتھ پلاٹ ڈسپلے کریں۔ show(). اگر ایک میٹرک کی وضاحت نہیں کی گئی ہے، تو ویژولائزر استعمال کرتا ہے۔ مسخ میٹرک، جو ہر نقطہ سے اس کے تفویض کردہ مرکز تک مربع فاصلوں کے مجموعے کی گنتی کرتا ہے:

model = KMeans(random_state=42)

elb_visualizer = KElbowVisualizer(model, k=(2,11))
elb_visualizer.fit(X)    
elb_visualizer.show()  

اب، ہمارے پاس پہلے ہی ایک ہے۔ KMeans کلسٹرنگ کے لیے ڈسٹورشن سکور ایلبو عمودی لکیر کے نشان کے ساتھ پلاٹ جو ks کی بہترین تعداد ہوگی، اس صورت میں، 4.

ایسا لگتا ہے کہ مسخ میٹرک کے ساتھ کہنی کا طریقہ بہترین انتخاب نہیں تھا اگر ہم کلسٹرز کی اصل تعداد کو نہیں جانتے تھے۔ کیا Silhouette یہ بھی بتائے گا کہ 4 کلسٹرز ہیں؟ اس کا جواب دینے کے لیے، ہمیں صرف آخری کوڈ کو ایک ماڈل کے ساتھ 4 کلسٹرز اور ایک مختلف ویژولائزر آبجیکٹ کے ساتھ دہرانے کی ضرورت ہے:

model_4clust = KMeans(n_clusters = 4, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_4clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

k کے لیے silhouette سکور کا مطلب ہے کہنی کا طریقہ استعمال کرتے ہوئے کلسٹر

کوڈ دکھاتا ہے a 150 مراکز میں 4 نمونوں کے لیے KMeans کلسٹرنگ کا سلہیٹ پلاٹ. اس کلسٹرز کا تجزیہ کرنے کے لیے، ہمیں سلائیٹ کوفیشینٹ (یا سکور) کی قدر کو دیکھنا ہوگا، اس کی بہترین قیمت 1 کے قریب ہے۔ ہمارے پاس اوسط قدر ہے 0.5, عمودی لائن سے نشان زد کیا گیا ہے، اور اتنا اچھا نہیں ہے۔

ہمیں کلسٹرز کے درمیان تقسیم کو بھی دیکھنے کی ضرورت ہے – ایک اچھے پلاٹ میں کلسٹرڈ ایریاز یا اچھی طرح سے تقسیم شدہ پوائنٹس کے برابر سائز ہوتے ہیں۔ اس گراف میں، 3 چھوٹے کلسٹرز (نمبر 3، 2، 1) اور ایک بڑا کلسٹر (نمبر 0) ہیں، جو وہ نتیجہ نہیں ہے جس کی ہم توقع کر رہے تھے۔

بہترین طرز عمل، صنعت کے لیے منظور شدہ معیارات، اور چیٹ شیٹ کے ساتھ Git سیکھنے کے لیے ہمارے ہینڈ آن، عملی گائیڈ کو دیکھیں۔ گوگلنگ گٹ کمانڈز کو روکیں اور اصل میں سیکھ یہ!

آئیے اسی پلاٹ کو 3 کلسٹرز کے لیے دہراتے ہیں کہ کیا ہوتا ہے:

model_3clust = KMeans(n_clusters = 3, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_3clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

kmeans کلسٹرز کے لیے silhouette

کلسٹرز کی تعداد کو تبدیل کرنے سے، سلہیٹ سکور حاصل کیا 0.05 زیادہ اور کلسٹرز زیادہ متوازن ہیں۔ اگر ہم کلسٹرز کی اصل تعداد نہیں جانتے تھے، دونوں تکنیکوں کو استعمال کرکے اور یکجا کرکے، ہم منتخب کرتے 3 بجائے 2 Ks کی تعداد کے طور پر

یہ ایک مثال ہے کہ کس طرح مختلف میٹرکس کو یکجا اور موازنہ کرنا، ڈیٹا کو ویژوئلائز کرنا، اور کلسٹرز کی مختلف اقدار کے ساتھ تجربہ کرنا نتیجہ کو صحیح سمت میں لے جانے کے لیے کس طرح اہم ہے۔ اور یہ بھی کہ، ایک لائبریری کا ہونا جو اس تجزیہ کی سہولت فراہم کرتا ہے اس عمل میں کس طرح مدد کر سکتا ہے!

ٹائم اسٹیمپ:

سے زیادہ Stackabuse