خوشه بندی با طعم ویژگی های وزن دار!

شاید برای شما هم پیش آمده باشد هنگام استفاده از الگوریتم k-means برخی از ویژگی های مورد استفاده برای شما اهمیت بیشتری داشته باشند. به عبارت دیگر بخواهید وزن بیشتری به برخی از ویژگی ها بدهید. کتابخانه flexclust در زبان R این امکان را به شما می دهد که به ویژگی ها وزن بدهید. اجازه بدهید یک مثال را با هم بررسی کنیم:

مجموعه داده گل زنبق

مجموعه داده گل زنبق یا مجموعه داده زنبق فیشر یک مجموعه داده چند متغیره است که توسط رانلد فیشر در سال ۱۹۳۶ معرفی شد. این مجموعه داده حاوی 150 مشاهده است. طول و عرض گلبرگ و کاس برگ سه گونه از گل زنبق (setosa و versicolor و virginica) در این مجموعه داده وجود دارد.

این مجموعه داده همچنین مجموعه داده زنبق اندرسون نیز نامیده می شود.این مجموعه داده دارای 5 ستون به شرح زیر است: طول کاس برگ، عرض کاس برگ، طول گلبرگ، عرض گلبرگ و گونه.

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa

قصد داریم با استفاده از چهار ویژگی طول کاس برگ، عرض کاس برگ، طول گلبرگ، عرض گلبرگ و وزن های (0.1و1و0.5و1) داده های مورد نظر را در سه خوشه قرار دهیم.

library(flexclust)
data(iris)
cl <- cclust(iris[,-5], k=3, save.data=TRUE, weights=c(1,0.5,1,0.1), method="kmeans")
cl

در این مثال اندازه هر خوشه 50، 62 و 38 به دست آمد. (ممکن است نتایج شما متفاوت باشد)

kcca object of family ‘kmeans’

call:
cclust(x = iris[, -5], k = 3, method = "kmeans", weights = c(1, 0.5, 1, 0.1),
save.data = TRUE)

cluster sizes:

1 2 3
50 62 38