Celem mojego projektu jest przeprowadzenie klastrowania za pomocą k-means. Analiza ma na celu pogrupowanie klientów galerii handlowej, na podstawie dwóch zmiennych: Roczny dochód (Annual Income) oraz wskaźnika wydatków (spending score)
#Przygotowanie danych
#Wczytywanie pakietów
library(factoextra) library(ggplot2) library(dplyr)
#wczytanie danych mall <- read.csv(“/Users/alege/Desktop/maszynowe/Mall_Customers.csv”)
#wstępne sprawdzenie danych
head(mall) str(mall)
mall_data <- mall[, c(“Annual.Income..k..”, “Spending.Score..1.100.”)]
mall_scaled <- scale(mall_data)
określamy za pomocą 2 metod: Elbow Method oraz silhouette szukamy punktu w którym krzywa zacznie się spłaszczać
fviz_nbclust(mall_scaled, kmeans, method = “wss”) + ggtitle(“Metoda Elbow”)
na podstawie spadku sumy kwadratów wewnątrz klastra punkt załamiania to K=5 lub K=4
fviz_nbclust(mall_scaled, kmeans, method = “silhouette”) + ggtitle(“Metoda Silhouette”)
najwyższą średnią szerokość silhouettte obserwujemy w K=6, dlatego dla dalszej analizy przyjmujemy taką ilość klastrów
set.seed(123) km_res <- kmeans(mall_scaled, centers = 6, nstart = 25)
mall\(cluster <- as.factor(km_res\)cluster)
#4 wizualizacja
Wykres punktowy pokazuje wyraźny podział klientów na 6 grup w przestrzeni Annual Income-Spending Score
ggplot(mall, aes(x = Annual.Income..k.., y = Spending.Score..1.100., color = cluster)) + geom_point(size = 3) + scale_color_brewer(palette = “Set1”) + labs(title = “Klastrowanie klientów galerii handlowej”, x = “Roczny dochód (k$)”, y = “Spending Score”) + theme_minimal()
mall %>% group_by(cluster) %>% summarise( N = n(),
Średni Dochód (k$) = mean(Annual.Income..k..),
Średni Spending Score = mean(Spending.Score..1.100.) )
%>% knitr::kable(caption = “Charakterystyka statystyczna
klastrów”)
Na podstawienie przedstawionego wykresu stwierdzić można iż: Kolor czerwony: Dochód: niski/ Wydatki: wysokie- IMPULSYWNI/RYZYKOWNI Kolor niebieski: Dochód: niski/ Wydatki: niskie- OSZCZĘDNI/BIEDNI Kolor zielony: Dochód: wysoki/ Wydatki: b. wysokie- IDEALNI KKLIENCI Kolor fioletowy: Dochód: Średni/ Wydatki: średnie- ŚREDNIA PÓŁKA Kolor pomarańczzowy: Dochód: średni/wysoki/ Wydatki: wysokie- WYDATNI/STABILNI Kolor żółty: Dochód: bardzo wysoki/ Wydatki: niskie- OSTROŻNI/ZAMOŻNI
Taka analiza idealnie sprawdzi się w marketingu lub będzie bardzo przydatna dla właśnicieli sklepów/ galerii, ponieważ będą dzięki niej wiedzieć do jakich grup klientów i jak najlepiej dotrzeć.