ÖDEVİ HAZIRLAYANLAR
- KARDELEN KAYA 2010713012
- DAMLA BİNGÜL 2010713033
- AHMET AKTAŞ 2010713019
- ŞAMİL DOĞUKAN AKTAŞ 2010713021
K-ORTALAMALAR KÜMELEME ANALİZİ
YAPAY VERİ OLUŞTURMA VE ANALİZ KODLARI
options(repos = c(CRAN = "https://cloud.r-project.org/"))
# Gerekli paketleri yükleyin
install.packages("ggplot2")## Installing package into 'C:/Users/zeraa/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'ggplot2' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\zeraa\AppData\Local\Temp\Rtmp0iCzHX\downloaded_packages
## Installing package into 'C:/Users/zeraa/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'factoextra' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\zeraa\AppData\Local\Temp\Rtmp0iCzHX\downloaded_packages
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Rastgele bir sosyal medya veri seti oluşturun (1000 gözlem)
set.seed(123)
veri <- data.frame(
Gunluk_Mesaj_Sayisi = rpois(1000, 10), # Ortalama 10 mesaj
Takipci_Sayisi = rnorm(1000, 1000, 200), # Ortalama 1000 takipçi
Begeni_Orani = runif(1000, 0, 1), # 0 ile 1 arasında beğeni oranı
Paylasim_Sikligi = rpois(1000, 5), # Ortalama 5 paylaşım
Yorum_Sayisi = rpois(1000, 20), # Ortalama 20 yorum
Etiket_Sayisi = rpois(1000, 15), # Ortalama 15 etiket
Video_Izlenme_Suresi = rnorm(1000, 300, 50), # Ortalama 300 saniye video izlenme süresi
Hikaye_Goruntulenme_Sayisi = rnorm(1000, 150, 30) # Ortalama 150 hikaye görüntülenme sayısı
)
# Optimal K değerini belirleyin
set.seed(123)
fviz_nbclust(veri, kmeans, method = "wss")# K-Means kümeleme analizini gerçekleştirin (K=5)
set.seed(123)
km.sonuc <- kmeans(veri, 5, nstart = 25)
print(km.sonuc)## K-means clustering with 5 clusters of sizes 252, 232, 110, 294, 112
##
## Cluster means:
## Gunluk_Mesaj_Sayisi Takipci_Sayisi Begeni_Orani Paylasim_Sikligi Yorum_Sayisi
## 1 9.809524 845.944 0.4830489 4.805556 19.59524
## 2 10.073276 1151.357 0.4991119 5.193966 20.25000
## 3 10.300000 657.817 0.4846522 5.181818 19.80000
## 4 9.959184 1003.717 0.4720756 5.061224 20.07823
## 5 9.937500 1345.320 0.5167988 4.910714 20.53571
## Etiket_Sayisi Video_Izlenme_Suresi Hikaye_Goruntulenme_Sayisi
## 1 15.00000 297.1327 148.1044
## 2 14.76293 298.6731 147.7800
## 3 15.16364 299.9764 149.2000
## 4 15.12585 302.4136 150.0510
## 5 15.45536 302.1767 144.6540
##
## Clustering vector:
## [1] 4 2 4 2 2 1 3 2 3 4 1 2 5 1 4 4 1 1 3 3 1 4 4 1 1 1 1 1 4 2 1 5 2 1 1 2 1
## [38] 4 2 4 1 1 4 4 1 4 1 5 3 5 4 4 3 2 5 1 2 5 5 1 1 4 4 1 1 2 4 2 1 2 4 4 3 3
## [75] 2 3 1 4 2 4 2 3 2 2 1 4 2 1 1 4 1 4 2 4 5 1 2 4 1 3 2 4 3 4 4 5 1 2 1 3 2
## [112] 3 4 2 2 1 1 2 4 1 1 1 3 2 4 1 5 2 5 5 1 4 5 2 5 2 4 5 2 4 4 1 5 1 4 3 5 5
## [149] 1 1 2 4 4 2 2 1 3 2 3 4 1 4 4 5 4 1 4 4 1 4 4 4 2 3 1 2 5 4 3 5 4 4 4 2 2
## [186] 4 3 4 5 5 4 2 1 5 2 4 2 4 1 4 4 2 4 4 2 4 2 2 1 1 1 3 4 5 2 1 1 2 5 4 3 1
## [223] 2 1 5 2 4 5 3 2 5 1 4 2 3 4 1 4 4 2 4 1 4 2 2 4 1 3 5 2 1 3 4 4 4 2 3 5 2
## [260] 4 4 1 2 2 3 1 4 1 3 1 4 3 4 1 3 1 1 5 1 2 1 1 1 3 2 5 4 2 4 2 2 3 3 4 1 2
## [297] 1 2 5 5 4 1 4 3 5 3 1 2 4 2 1 3 2 2 5 1 3 2 5 4 2 1 2 4 2 3 1 1 4 3 2 1 4
## [334] 3 1 5 2 4 1 1 1 2 5 5 4 1 5 2 4 5 2 1 1 1 2 1 1 1 5 4 2 1 1 3 2 4 1 2 4 1
## [371] 3 2 3 3 2 2 1 4 1 2 2 5 2 4 1 4 1 4 4 4 3 4 4 4 3 3 4 2 2 4 1 4 4 4 4 4 5
## [408] 2 4 2 3 4 1 5 4 1 2 5 1 1 1 1 2 1 4 1 4 4 3 1 1 3 1 3 5 1 4 4 4 4 2 2 1 3
## [445] 4 4 1 4 2 4 1 4 1 4 4 5 4 2 2 4 3 4 4 2 4 4 2 4 4 2 2 5 5 2 4 1 1 1 1 2 1
## [482] 4 5 4 4 1 1 1 4 1 4 2 4 1 1 4 4 1 4 2 4 4 1 5 3 2 4 3 4 1 1 1 4 4 1 4 1 5
## [519] 4 1 4 2 4 4 5 4 4 1 2 2 3 2 2 4 3 4 4 4 3 2 3 4 1 1 1 4 4 4 2 2 2 2 4 1 1
## [556] 5 4 5 2 2 4 2 2 3 4 4 2 5 5 2 4 5 2 3 1 4 2 1 2 3 4 4 5 5 4 4 4 2 4 1 4 1
## [593] 1 4 2 2 4 5 1 4 1 2 4 4 2 1 4 5 1 2 1 2 4 2 4 2 5 1 1 2 4 5 4 4 1 5 2 3 5
## [630] 1 1 1 3 2 3 1 1 2 1 4 1 2 1 5 4 1 5 4 1 1 2 1 5 1 3 3 1 2 3 1 4 3 4 3 3 5
## [667] 5 2 5 1 5 1 2 3 2 3 3 1 1 4 4 5 5 2 1 4 4 2 4 1 2 3 4 1 4 2 4 2 4 1 1 4 5
## [704] 3 4 1 1 2 4 5 1 3 1 1 2 4 2 4 2 2 2 1 1 2 2 1 2 1 4 1 1 3 4 1 1 1 4 4 2 2
## [741] 2 3 4 3 5 4 1 4 4 2 2 3 2 3 2 3 4 4 5 1 5 3 1 1 1 2 2 3 1 3 2 2 2 5 4 4 1
## [778] 5 4 1 1 5 1 2 4 2 2 1 3 5 5 1 5 2 4 2 4 2 4 2 4 4 5 2 2 4 4 3 1 2 4 1 2 1
## [815] 4 1 1 2 1 4 4 1 5 2 4 3 2 5 2 2 1 3 4 5 4 1 5 1 2 2 4 4 1 4 2 2 1 5 2 3 4
## [852] 5 3 1 2 2 1 2 1 1 3 2 4 4 5 1 1 1 4 5 2 1 2 1 1 2 2 4 3 2 4 2 3 2 4 3 4 4
## [889] 2 3 2 4 4 1 4 4 1 4 4 1 4 5 4 3 1 2 3 1 3 2 4 5 5 4 4 4 2 2 4 5 2 4 3 4 3
## [926] 2 2 4 4 4 4 1 3 4 4 5 5 2 1 3 2 1 2 4 1 1 4 1 4 1 5 4 4 4 1 5 4 4 4 1 4 5
## [963] 1 1 5 3 4 2 2 2 1 2 2 3 2 4 4 4 4 2 5 4 3 2 4 5 1 4 2 2 1 1 5 1 4 2 2 5 3
## [1000] 4
##
## Within cluster sum of squares by cluster:
## [1] 1412351 1274650 1129459 1536635 1196835
## (between_SS / total_SS = 85.1 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
# K-means sonuçlarını görselleştirin
fviz_cluster(km.sonuc, data = veri, ellipse.type = "convex", geom = "point", stand = FALSE) +
theme_minimal()ANALİZ SONUÇLARI
Küme Sayısı ve Boyutları:
- Veri setinizdeki gözlemler, benzer özelliklere sahip olan ve birlikte gruplandırılan kümeleri oluşturur. Bu analizde, veri setinizin beş farklı kümeye bölündüğünü görüyoruz. Bu beş kümenin her biri farklı özelliklere sahip olabilir. Örneğin, bir küme genellikle yüksek takipçi sayısına ve etkileşime sahip kullanıcıları temsil edebilirken, diğer bir küme daha az aktif kullanıcıları temsil edebilir. Küme boyutları, her bir kümeye ait gözlem sayısını gösterir. Örneğin, 1. küme 252 gözlem içerir.
Küme Merkezleri (Ortalamalar):
- Her bir kümenin ortalaması, o kümedeki gözlemlerin değişken değerlerinin ortalamasıdır. Örneğin, 1. kümenin “Gunluk_Mesaj_Sayisi” değişkeninin ortalaması 9.809524’tür. Bu, 1. kümenin ortalama günlük mesaj sayısının yaklaşık olarak 9.81 olduğunu gösterir.
Kümelere Atama:
- “Clustering vector” bölümü, her bir gözlemi hangi kümenin içinde olduğunu gösterir. Bu, hangi kullanıcıların hangi segmente ait olduğunu anlamanıza yardımcı olur. Örneğin, 1. gözlem 4. kümede olduğunu gösteren bir değere sahipse, bu o kullanıcının 4. segmente ait olduğunu belirtir.
Küme İçi Değişkenlik:
- “Within cluster sum of squares by cluster” bölümü, her bir kümenin içindeki gözlemlerin küme merkezine olan uzaklıklarının karelerinin toplamını verir. Bu değerler, her bir kümenin içindeki değişkenliği ölçer. Küme içi değişkenlik, bir kümeye ait gözlemlerin birbirlerine ne kadar benzediğini gösterir. Daha düşük değerler, bir kümeye ait gözlemlerin birbirine daha yakın olduğunu ve bu kümenin daha homojen olduğunu gösterir.
between_SS / total_SS (Kümeler Arası Karelerin Toplamı / Toplam Karelerin Toplamı): Bu oran, kümeleme analizinin ne kadar başarılı olduğunu değerlendirmek için kullanılır. Yüksek bir oran, kümeleme modelinin veri setindeki toplam değişkenliğin büyük bir kısmını açıkladığını gösterir. Bu durumda, küme merkezlerinin birbirinden belirgin şekilde farklı olduğu ve kümeleme işleminin etkili olduğu anlamına gelir.Bununla birlikte, kümeleme işleminin toplam veri setindeki varyansın %85.1’ini açıkladığını görüyoruz. Bu, k-means modelinizin veri setinin büyük bir kısmını başarılı bir şekilde açıkladığını gösterir.