K-Means طريقة الكوع وتحليل الصور الظلية مع ذكاء بيانات بلاتو بلوك تشين و Yellowbrick و Scikit-Learn PlatoBlockchain. البحث العمودي. عاي.

K-Means طريقة الكوع وتحليل الصور الظلية باستخدام Yellowbrick و Scikit-Learn

المُقدّمة

K-Means هي واحدة من أكثر خوارزميات التجميع شيوعًا. من خلال وجود نقاط مركزية لمجموعة ، فإنه يجمع النقاط الأخرى بناءً على المسافة التي تفصلها عن تلك النقطة المركزية.

يتمثل الجانب السلبي لـ K-Means في اختيار عدد المجموعات ، K، قبل تشغيل الخوارزمية التي تجمع النقاط.

إذا كنت ترغب في قراءة دليل متعمق لـ K-Means Clustering ، فقم بإلقاء نظرة "K-Means Clustering with Scikit-Learn".

طريقة الكوع وتحليل الصورة الظلية

أكثر التقنيات شيوعًا لاختيار عدد Ks هي طريقة الكوع و تحليل صورة ظلية.

لتسهيل اختيار Ks ، فإن يلوبريك مكتبة تختتم الشفرة بحلقات for ومخطط نكتبه عادةً في 4 أسطر من التعليمات البرمجية.

لتثبيت Yellowbrick مباشرة من دفتر Jupyter ، قم بتشغيل:

! pip install yellowbrick

دعونا نرى كيف يعمل مع مجموعة بيانات مألوفة والتي هي بالفعل جزء من Scikit-Learn ، و قزحية مجموعة البيانات.

تتمثل الخطوة الأولى في استيراد مجموعة البيانات ، 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، هذه هي الوحدات التي سنستخدمها لتصور نتائج Elbow و Silhouette!

بعد تحميل مجموعة البيانات ، في ملف data مفتاح المجموعة (نوع البيانات الذي يعد امتدادًا لقاموس) هي قيم النقاط التي نريد تجميعها. إذا كنت تريد معرفة ما تمثله الأرقام ، فقم بإلقاء نظرة عليها iris['feature_names'].

من المعروف أن مجموعة بيانات Iris تحتوي على ثلاثة أنواع من القزحية: "المبرقشة" و "فيرجينيكا" و "سيتوسا". يمكنك أيضًا فحص الفصول في iris['target_names'] للتحقق.

لذلك ، لدينا 4 ميزات للتجميع ويجب فصلها في 3 مجموعات مختلفة وفقًا لما نعرفه بالفعل. دعونا نرى ما إذا كانت نتائجنا باستخدام طريقة الكوع وتحليل الصورة الظلية ستدعم ذلك.

أولاً ، سنختار قيم الميزة:

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

X = iris['data']

بعد ذلك ، يمكننا إنشاء ملف KMeans نموذج ، أ KElbowVisualizer() المثال الذي سيتلقى هذا النموذج إلى جانب عدد ks التي سيتم حساب المقياس من أجلها ، في هذه الحالة من 2 إلى 11 ك.

بعد ذلك ، نلائم المتخيل مع البيانات باستخدام 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 of KMeans Clustering لـ 150 عينة في 4 مراكز. لتحليل هذه المجموعات ، نحتاج إلى النظر إلى قيمة معامل الصورة الظلية (أو النتيجة) ، وأفضل قيمة لها أقرب إلى 1. متوسط ​​القيمة لدينا هو 0.5، التي تم تمييزها بالخط العمودي ، وليست جيدة.

نحتاج أيضًا إلى النظر في التوزيع بين المجموعات - قطعة الأرض الجيدة لها أحجام متشابهة من المناطق المجمعة أو النقاط الموزعة جيدًا. في هذا الرسم البياني ، هناك 3 مجموعات أصغر (رقم 3 ، 2 ، 1) ومجموعة أكبر واحدة (الرقم 0) ، وهي ليست النتيجة التي كنا نتوقعها.

تحقق من دليلنا العملي العملي لتعلم Git ، مع أفضل الممارسات ، والمعايير المقبولة في الصناعة ، وورقة الغش المضمنة. توقف عن أوامر Googling Git وفي الواقع تعلم ذلك!

دعنا نكرر نفس الحبكة لثلاث مجموعات لنرى ما سيحدث:

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

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

صورة ظلية لمجموعات kmeans

من خلال تغيير عدد المجموعات ، حصلت على نتيجة الصورة الظلية 0.05 أعلى والعناقيد أكثر توازنا. إذا لم نكن نعرف العدد الفعلي للمجموعات ، من خلال التجربة والجمع بين كلتا الطريقتين ، لكنا اخترنا 3 بدلا من 2 كعدد Ks.

هذا مثال على كيفية الجمع بين المقاييس المختلفة ومقارنتها ، وتصوير البيانات ، وتجربة قيم مختلفة من المجموعات أمرًا مهمًا لقيادة النتيجة في الاتجاه الصحيح. وأيضًا ، كيف أن وجود مكتبة تسهل هذا التحليل يمكن أن يساعد في هذه العملية!

الطابع الزمني:

اكثر من ستاكابوز