K تعني التجميع في R: تعليمي خطوة بخطوة مع مثال

نشرت: 2020-02-17

كعالم بيانات ، سوف تقوم بالكثير من المجموعات. هناك العديد من أنواع خوارزميات التجميع المتاحة ، ويجب أن تكون متمرسًا في استخدامها جميعًا. في هذه المقالة ، سنناقش خوارزمية تجميع شائعة ، تعني K ، ونرى كيف يتم استخدامها في R.

سوف تكتشف النظرية الأساسية وراء K-mean clustering في R وكيف يتم استخدامها. لقد ناقشنا أيضًا مثالًا عمليًا لاحقًا في المقالة. تأكد من وضع إشارة مرجعية على هذه المقالة للرجوع إليها في المستقبل. اقرأ المزيد حول تحليل المجموعات في التنقيب في البيانات.

قبل أن نبدأ في مناقشة K تعني التجميع في R ، يجب أن نلقي نظرة على أنواع خوارزميات التجميع الموجودة حتى تتمكن من فهم كيفية تعامل هذه الخوارزمية معها بشكل أفضل.

قراءة: أهم مكتبات R في علوم البيانات

جدول المحتويات

أنواع التجميع

عندما تقوم بتجميع عدة كائنات بطريقة تجعل الكائنات الأكثر تشابهًا مع بعضها البعض في مجموعة قريبة ، فإن هذا يسمى التجميع. يمكن أن تكون المسافة بين الأشياء ذات صلة بالتشابه بينهما. يظهر التشابه قوة العلاقة بين كائنين مختلفين في علم البيانات. التجميع هو تقنية شائعة للتنقيب عن البيانات. تجد Clustering تطبيقاتها في العديد من الصناعات والمجالات ، بما في ذلك تحليل الصور والتعلم الآلي وضغط البيانات والتعرف على الأنماط وغيرها الكثير.

التجميع من نوعين - صلب وناعم. دعونا نناقش كل منهم بإيجاز.

  • في الكتلة الصلبة ، ستنتمي نقطة البيانات إلى الكتلة بالكامل ، أو لن تنتمي إليها على الإطلاق. لا يوجد بينهما.
  • في الكتلة اللينة ، يمكن أن يرتبط كائن البيانات بأكثر من مجموعة واحدة في وقت واحد بسبب بعض الاحتمالية أو الاحتمال.

تعلم دورة علوم البيانات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

أنواع خوارزميات التجميع

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

المفهوم الأساسي للوسائل K

المفهوم الأساسي للوسائل K بسيط للغاية. ترتبط K- الوسائل بتحديد المجموعات بحيث يكون التباين الكلي داخل المجموعة في أدنى حد ممكن. هناك مجموعة متنوعة من خوارزميات k-mean. الخوارزمية الأكثر شيوعًا للوسائل k هي خوارزمية Hartigan-Wong ، والتي تنص على أن التباين الكلي داخل الكتلة يساوي مجموع المسافات الإقليدية للمسافات الإقليدية بين النقطتين الوسطى وعناصرها:

W ( C k ) = x i C k ( x i - k ) 2

هنا تشير x i إلى نقطة بيانات تنتمي إلى المجموعة C k و k تشير إلى القيمة المتوسطة لنقاط البيانات الموجودة في الكتلة Ck.

يجب أن تكون قيمة x i بحيث يكون مجموع المسافة المربعة بين x i و k هو الحد الأدنى.

ما هي خوارزمية K- يعني؟

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

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

استخدام K-Means Clustering (مثال)

الآن بعد أن عرفت ما هي خوارزمية K في R وكيف تعمل ، فلنناقش مثالاً لتوضيح أفضل. في هذا المثال ، سنقوم بتجميع عملاء إحدى المؤسسات باستخدام قاعدة بيانات عملاء البيع بالجملة. تتوفر بيانات هذه المشكلة في مستودع التعلم الآلي في Berkley UCI. يمكنك التحقق من ذلك هنا .

أولاً ، سنقرأ البيانات. ثم احصل على ملخص لها. بعد قراءة البيانات والاطلاع على ملخصها ، سترى أن هناك بعض الاختلافات الصارخة بين كبار المستهلكين في فئات مختلفة. ستجد بعض القيم المتطرفة التي لا يمكنك إزالتها بسهولة بالتطبيع (أو القياس). باستخدام هذه البيانات ، قد يرغب النشاط التجاري في معرفة ما يشتريه نطاق العملاء المتوسطين في معظم الأوقات. ذلك لأن الشركة لديها فكرة جيدة عما يشتريه كبار العملاء.

لإنشاء مجموعة من العملاء متوسطي المستوى ، يجب أن نتخلص أولاً من الطبقة العليا من العملاء من كل فئة. لذلك سنقوم بإزالة الخمسة الأوائل وإنشاء مجموعة جديدة. إليك كيف سنفعل ذلك:

top.n.custs <- function (data، cols، n = 5) {#Requires some data frame and the top N to remove

idx.to.remove <-integer (0) #Initialize ناقل لإبقاء العملاء قيد الإزالة

لـ (c in cols) {# لكل عمود في البيانات مررنا إلى هذه الوظيفة

ترتيب العمود <- (البيانات [، ج] ، تنازلي = T) # فرز العمود "ج" بترتيب تنازلي (الأكبر في الأعلى)

تقوم #Order بإرجاع الفهرس الذي تم فرزه (مثل الصف 15 ، 3 ، 7 ، 1 ، ...) بدلاً من القيم الفعلية التي تم فرزها.

idx <-head (col.order، n) # خذ أول n من العمود C إلى

idx.to.remove <-union (idx.to.remove، idx) # امزج وإلغاء نسخ معرّفات الصفوف التي يجب إزالتها

}

return (idx.to.remove) #Return فهارس العملاء المراد إزالتها

}

top.custs <-top.n.custs (البيانات ، العواميد = 3: 8 ، n = 5)

length (top.custs) # كم عدد العملاء المطلوب إزالتهم؟

البيانات [top.custs] # ​​افحص العملاء المتاحين

data.rm.top <-data [-c (top.custs)،] #Remove the required customers

باستخدام هذا الملف الجديد ، يمكننا البدء في العمل على تحليل الكتلة لدينا. لإجراء تحليل الكتلة ، سنستخدم الكود التالي:

set.seed (76964057) # اضبط البذور للتكاثر

k <-kmeans (data.rm.top [، - c (1،2)]، Centers = 5) #Create 5 clusters، إزالة العمودين 1 و 2

k $ Centers # عرض & nbsp؛ مراكز المجموعة

الجدول (k $ الكتلة) # أعط عدد نقاط البيانات في كل مجموعة

عندما تقوم بتشغيل هذا الرمز في قاعدة البيانات المحددة ، ستحصل على هذه النتائج:

  • سيكون للمجموعة الأولى منظفات عالية الجودة ولكن كمية منخفضة من المنتجات الغذائية الطازجة
  • سيكون للمجموعة الثالثة المزيد من المنتجات الطازجة

سوف تحتاج إلى استخدام withinss و betweens للحصول على تفسير مفصل للنتائج. k $ withinss يساوي مجموع مربع المسافة بين كل كائن بيانات من مركز الكتلة. كلما انخفض النطاق ، كانت النتيجة أفضل. إذا كان مقياس ininss مرتفعًا في بياناتك ، فهذا يعني أن هناك العديد من القيم المتطرفة ، وتحتاج إلى إجراء تنظيف البيانات. k $ betweenss هو مجموع مربع المسافة بين مراكز المجموعات المختلفة. يجب أن تكون المسافة بين مراكز الكتلة أعلى ما يمكن.

قراءة: 6 هياكل البيانات الأكثر استخدامًا في R

يجب أن تأخذ مساعدة من التجربة والخطأ للحصول على أكثر النتائج دقة. للقيام بذلك ، ستحتاج إلى تجربة قيم مختلفة لـ K. عندما لا يُظهر الرسم البياني لنتائجك زيادة في الأجزاء الداخلية من المجموعات الخاصة بك ، ستكون هذه النقطة هي أنسب قيمة لـ K. يمكنك العثور على القيمة من K من خلال الكود التالي:

rng <-2: 20 #K من 2 إلى 20

يحاول <-100 #Run the K يعني خوارزمية 100 مرة

avg.totw.ss <- عدد صحيح (الطول (rng)) # إعداد متجه فارغ للاحتفاظ بجميع النقاط

لـ (v in rng) {# لكل قيمة من متغير النطاق

v.totw.ss <- عدد صحيح (يحاول) # إعداد متجه فارغ لاستيعاب 100 محاولة

لـ (أنا في 1: محاولات) {

k.temp <-kmeans (data.rm.top، Centers = v) #Run kmeans

v.totw.ss [i] <-k.temp $ tot.withinss # قم بتخزين الإجمالي مع الوحدات

}

avg.totw.ss [v-1] <-mean (v.totw.ss) # متوسط ​​إجمالي 100 withinss

}

قطعة الأرض (rng ، avg.totw.ss ، النوع = "b" ، main = "الإجمالي داخل SS بواسطة مختلف K" ،

ylab = "متوسط ​​الإجمالي ضمن مجموع المربعات" ،

xlab = "قيمة K")

هذا هو. يمكنك الآن استخدام الرسم البياني الذي تحصل عليه من هذا الرمز للحصول على أفضل قيمة لـ K واستخدامها للحصول على النتائج المطلوبة. استخدم هذا المثال لتجربة معرفتك بتجميع الوسائل K في R. وإليك كل الكود الذي استخدمناه في المثال:

البيانات <-read.csv ("بيانات عملاء الجملة" ، العنوان = T)

ملخص (بيانات)

top.n.custs <- function (data، cols، n = 5) {#Requires some data frame and the top N to remove

idx.to.remove <-integer (0) #Initialize ناقل لإبقاء العملاء قيد الإزالة

لـ (c in cols) {# لكل عمود في البيانات مررنا إلى هذه الوظيفة

ترتيب العمود <- (البيانات [، ج] ، تنازلي = T) # فرز العمود "ج" بترتيب تنازلي (الأكبر في الأعلى)

تقوم #Order بإرجاع الفهرس الذي تم فرزه (مثل الصف 15 ، 3 ، 7 ، 1 ، ...) بدلاً من القيم الفعلية التي تم فرزها.

idx <-head (col.order، n) # خذ أول n من العمود C إلى

idx.to.remove <-union (idx.to.remove، idx) # امزج وإلغاء نسخ معرّفات الصفوف التي يجب إزالتها

}

return (idx.to.remove) #Return فهارس العملاء المراد إزالتها

}

top.custs <-top.n.custs (البيانات ، العواميد = 3: 8 ، n = 5)

length (top.custs) # كم عدد العملاء المراد إزالتهم؟

البيانات [top.custs] # ​​اختبر العملاء

data.rm.top <-data [-c (top.custs)،] #Remove the clients

set.seed (76964057) # اضبط البذور للتكاثر

k <-kmeans (data.rm.top [، - c (1،2)]، Centers = 5) #Create 5 clusters، إزالة العمودين 1 و 2

k $ Centers # عرض مراكز المجموعة

table (k $ الكتلة) # أعط عددًا من نقاط البيانات في كل مجموعة

rng <-2: 20 #K من 2 إلى 20

يحاول <-100 #Run the K يعني خوارزمية 100 مرة

avg.totw.ss <- عدد صحيح (الطول (rng)) # إعداد متجه فارغ للاحتفاظ بجميع النقاط

لـ (v in rng) {# لكل قيمة من متغير النطاق

v.totw.ss <- عدد صحيح (يحاول) # إعداد متجه فارغ لاستيعاب 100 محاولة

لـ (أنا في 1: محاولات) {

k.temp <-kmeans (data.rm.top، Centers = v) #Run kmeans

v.totw.ss [i] <- k.temp $ tot.withinss # قم بتخزين الإجمالي مع الوحدات

}

avg.totw.ss [v-1] <- متوسط ​​(v.totw.ss) # متوسط ​​إجمالي 100 withinss

}

قطعة الأرض (rng ، avg.totw.ss ، النوع = "b" ، main = "الإجمالي داخل SS بواسطة مختلف K" ،

ylab = "متوسط ​​الإجمالي ضمن مجموع المربعات" ،

xlab = "قيمة K")

خاتمة

نأمل أن تكون قد أحببت هذا الدليل. لقد حاولنا أن نجعلها موجزة وشاملة. إذا كان لديك أي أسئلة حول خوارزمية K-mean ، فلا تتردد في طرحها علينا. يسعدنا الرد على استفساراتك.

إذا كنت مهتمًا بالتعرف على علوم البيانات ، فراجع برنامج IIIT-B & upGrad التنفيذي PG في علوم البيانات الذي تم إنشاؤه للمهنيين العاملين ويقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع خبراء الصناعة ، 1 - في 1 مع موجهين في الصناعة ، أكثر من 400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.

ما هي بعض عيوب استخدام K- الوسائل؟

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

ما هي طريقة الكوع في K- يعني؟

تعتمد طريقة k-mean بشكل كبير على إيجاد العدد المناسب من المجموعات. نهج الكوع هو طريقة مستخدمة على نطاق واسع لتحديد أفضل قيمة K. تؤدي تقنية الكوع تجميع متوسطات K على مجموعة البيانات لمجموعة من قيم K على الرسم البياني ، ثم تحسب متوسط ​​النقاط لجميع المجموعات لكل قيمة K. درجة التشويه ، وهي مجموع المسافات المربعة من كل نقطة إلى المركز المخصص لها ، يتم حسابها افتراضيًا. يمكن للنماذج الأخرى التي تعتمد على البيانات ، مثل عدد المكونات الرئيسية لتمييز مجموعة البيانات ، استخدام نفس التقنية لتحديد عدد المعلمات.

كيف يمكننا العثور على القيم المتطرفة في K- يعني؟

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