كيفية استخدام طريقة elbow في r للعثور على المجموعات المثالية


تُعرف إحدى خوارزميات التجميع الأكثر استخدامًا في التعلم الآلي باسم التجميع بوسائل k .

إن تجميع وسائل K هو أسلوب نضع فيه كل ملاحظة من مجموعة بيانات في إحدى مجموعات K.

الهدف النهائي هو الحصول على مجموعات K حيث تكون الملاحظات داخل كل مجموعة متشابهة تمامًا مع بعضها البعض بينما تختلف الملاحظات في المجموعات المختلفة تمامًا عن بعضها البعض.

عند القيام بالتجميع باستخدام k، فإن الخطوة الأولى هي اختيار قيمة لـ K – عدد المجموعات التي نريد وضع الملاحظات فيها.

تُعرف إحدى الطرق الأكثر شيوعًا لاختيار قيمة لـ K بطريقة الكوع ، والتي تتضمن إنشاء مخطط بعدد المجموعات على المحور x والإجمالي في مجموع المربعات على المحور y، ثم تحديد حيث تظهر “الركبة” أو المنعطف في المؤامرة.

تخبرنا النقطة الموجودة على المحور السيني حيث تحدث “الركبة” بالعدد الأمثل للمجموعات التي سيتم استخدامها في خوارزمية التجميع بالوسائل k.

يوضح المثال التالي كيفية استخدام طريقة الكوع في R.

مثال: استخدام طريقة الكوع في R

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

يوضح التعليمة البرمجية التالية كيفية تحميل مجموعة البيانات، وإزالة الصفوف ذات القيم المفقودة، وقياس كل متغير في مجموعة البيانات للحصول على متوسط 0 وانحراف معياري 1:

 #load data
df <-USArrests

#remove rows with missing values
df <- na. omitted (df)

#scale each variable to have a mean of 0 and sd of 1
df <- scale(df)

#view first six rows of dataset
head(df)

               Murder Assault UrbanPop Rape
Alabama 1.24256408 0.7828393 -0.5209066 -0.003416473
Alaska 0.50786248 1.1068225 -1.2117642 2.484202941
Arizona 0.07163341 1.4788032 0.9989801 1.042878388
Arkansas 0.23234938 0.2308680 -1.0735927 -0.184916602
California 0.27826823 1.2628144 1.7589234 2.067820292
Colorado 0.02571456 0.3988593 0.8608085 1.864967207

للعثور على العدد الأمثل للمجموعات لاستخدامها في خوارزمية k-means، سنستخدم الدالة fviz_nbclust() من الحزمة Factoextra لإنشاء مخطط لعدد المجموعات مقابل الإجمالي في مجموع المربعات:

 library (cluster)
library (factoextra)

#create plot of number of clusters vs total within sum of squares
fviz_nbclust(df, kmeans, method = “ wss ”) 

طريقة R- الانحناء

في هذا الرسم البياني، يبدو أن هناك “ركبة” أو شبك عند k = 4 مجموعات. هذه هي النقطة التي يبدأ فيها استقرار المجموع في مجموع المربعات.

يخبرنا هذا أن العدد الأمثل للمجموعات التي سيتم استخدامها في خوارزمية k-means هو 4.

ملحوظة : على الرغم من أننا قد نحصل على إجمالي أقل في مجموع المربعات باستخدام المزيد من المجموعات، فمن المحتمل أن نبالغ في ملء بيانات التدريب وبالتالي لن تعمل خوارزمية k-means بشكل جيد على بيانات الاختبار.

يمكننا استخدام الدالة kmeans() من الحزمة العنقودية لتنفيذ تجميعات k-means على مجموعة البيانات باستخدام القيمة المثلى لـ k من 4:

 #make this example reproducible
set. seeds (1)

#perform k-means clustering with k = 4 clusters
km <- kmeans(df, centers = 4, nstart = 25)

#view results
km

K-means clustering with 4 clusters of sizes 16, 13, 13, 8

Cluster means:
      Murder Assault UrbanPop Rape
1 -0.4894375 -0.3826001 0.5758298 -0.26165379
2 -0.9615407 -1.1066010 -0.9301069 -0.96676331
3 0.6950701 1.0394414 0.7226370 1.27693964
4 1.4118898 0.8743346 -0.8145211 0.01927104

Vector clustering:
       Alabama Alaska Arizona Arkansas California Colorado 
             4 3 3 4 3 3 
   Connecticut Delaware Florida Georgia Hawaii Idaho 
             1 1 3 4 1 2 
      Illinois Indiana Iowa Kansas Kentucky Louisiana 
             3 1 2 1 2 4 
         Maine Maryland Massachusetts Michigan Minnesota Mississippi 
             2 3 1 3 2 4 
      Missouri Montana Nebraska Nevada New Hampshire New Jersey 
             3 2 2 3 2 1 
    New Mexico New York North Carolina North Dakota Ohio Oklahoma 
             3 3 4 2 1 1 
        Oregon Pennsylvania Rhode Island South Carolina South Dakota Tennessee 
             1 1 1 4 2 4 
         Texas Utah Vermont Virginia Washington West Virginia 
             3 1 2 1 1 2 
     Wisconsin Wyoming 
             2 1 

Within cluster sum of squares by cluster:
[1] 16.212213 11.952463 19.922437 8.316061
 (between_SS / total_SS = 71.2%)

Available components:

[1] "cluster" "centers" "totss" "withinss" "tot.withinss" "betweenss"   
[7] "size" "iter" "ifault"         

ومن النتائج يتبين لنا أن:

  • تم تخصيص 16 ولاية للمجموعة الأولى
  • وتم تخصيص 13 ولاية للمجموعة الثانية
  • وتم تخصيص 13 ولاية للمجموعة الثالثة
  • تم تخصيص 8 ولايات للمجموعة الرابعة

يمكننا أيضًا إضافة تخصيصات المجموعة لكل ولاية إلى مجموعة البيانات الأصلية:

 #add cluster assignment to original data
final_data <- cbind(USArrests, cluster = km$cluster)

#view final data
head(final_data)

	Murder Assault UrbanPop Rape cluster
				
Alabama 13.2 236 58 21.2 4
Alaska 10.0 263 48 44.5 2
Arizona 8.1 294 80 31.0 2
Arkansas 8.8 190 50 19.5 4
California 9.0 276 91 40.6 2
Colorado 7.9 204 78 38.7 2

تم وضع كل ملاحظة من قاعدة البيانات الأصلية في واحدة من أربع مجموعات.

مصادر إضافية

توفر البرامج التعليمية التالية أمثلة خطوة بخطوة حول كيفية تشغيل خوارزميات التجميع المختلفة في R:

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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *