Penelitian ini adalah menerapkan metode cluster non hirarki yang merupakan varian dari metode K-Means yaitu K-Medoids atau Partitioning Around Method (PAM) untuk melakukan pengelompokan. Sedangkan tujuan dari penelitian ini adalah untuk membuat rekomendasi-rekomendasi berdasarkan kelompok yang telah terbentuk, dimana dalam satu kelompok akan memiliki spesifikasi yang hampir sama sehingga customer dapat memiliki alternatif jenis hp lain yang memiliki spesifikasi yang hampir sama dengan yang diinginkan.
Benefit :
Dapat memberikan pilihan alternatif bagi customer yang sedang mencari smart phone dengan kriteria yang sama.
Menyediakan referensi bagi penjual smart phone mengenai smart phone yang memiliki kesamaan.
# Data Wrangling
library(tidyverse)
library(Hmisc)
# Machine Learning - Clustering
library(cluster)
library(factoextra)
library(mvnTest)
# Visualization
library(Rtsne)
# Read Data
data_sp <- read.csv("Smartphone(1jt-2jt).csv", sep = ";")
# Cek struktur data
str(data_sp)
## 'data.frame': 24 obs. of 12 variables:
## $ Name : chr "Alcatel 1S" "Alcatel 1SE" "Zenfone 4 Max" "Infinix Hot 10 Play" ...
## $ Brand : chr "Alcatel" "Alcatel" "Asus" "Infinix" ...
## $ Price : chr "1.599.000" "1.599.000" "1.699.000" "1.259.000" ...
## $ Processor : chr "Mediatek" "Unisoc" "Snapdragon" "Mediatek" ...
## $ RAM : int 3 4 3 2 2 2 3 2 4 2 ...
## $ Memory : int 32 64 32 32 16 32 32 32 64 32 ...
## $ Screen : num 4.1 3.6 4.1 4.3 3.7 3.9 6.4 3.9 7 5.8 ...
## $ Performance : num 5.7 5.4 4.5 5.7 4.3 5.4 5.9 5.4 6.7 5.8 ...
## $ Camera : num 4.8 4.9 3.7 4.6 3.5 4.5 4.7 4.5 6.8 3.4 ...
## $ Connectivity: num 5.5 5.4 5.7 6.7 3.5 4.5 5.9 4.5 7 5.6 ...
## $ Battery : num 5.9 5.7 7.7 8.8 4.4 6.8 6.9 6.8 8.9 8.1 ...
## $ Link : chr "https://www.tokopedia.com/mygadgetholic/alcatel-1s-5028y-smartphone-3-32gb-garansi-resmi-green" "https://www.tokopedia.com/mygadgetholic/alcatel-1se-5030u-smartphone-4-64gb-garansi-resmi-green" "https://www.tokopedia.com/mygadgetholic/asus-zenfone-4-max-zc554kl-smartphone-ram-3gb-rom-32gb-gold" "https://www.tokopedia.com/mygadgetholic/infinix-hot-10-play-x688c-smartphone-2gb-32gb-garansi-resmi-morandi-green" ...
# Data Wrangling
data_sp <- data_sp %>%
# Ubah type data yang belum sesuai
mutate(Brand = as.factor(Brand),
RAM = as.factor(RAM),
Memory = as.factor(Memory),
Processor = as.factor(Processor),
Price = as.numeric(gsub(x = Price,
pattern = "\\.",
replacement = ""))
) %>%
# Buang variabel yang tidak diperlukan
select(-c(Link))
glimpse(data_sp)
## Rows: 24
## Columns: 11
## $ Name <chr> "Alcatel 1S", "Alcatel 1SE", "Zenfone 4 Max", "Infinix Ho~
## $ Brand <fct> Alcatel, Alcatel, Asus, Infinix, Nokia, Oppo, Oppo, Oppo,~
## $ Price <dbl> 1599000, 1599000, 1699000, 1259000, 1499000, 1399000, 179~
## $ Processor <fct> Mediatek, Unisoc, Snapdragon, Mediatek, Unisoc, Mediatek,~
## $ RAM <fct> 3, 4, 3, 2, 2, 2, 3, 2, 4, 2, 2, 3, 4, 2, 3, 3, 2, 4, 3, ~
## $ Memory <fct> 32, 64, 32, 32, 16, 32, 32, 32, 64, 32, 32, 32, 64, 32, 3~
## $ Screen <dbl> 4.1, 3.6, 4.1, 4.3, 3.7, 3.9, 6.4, 3.9, 7.0, 5.8, 6.3, 5.~
## $ Performance <dbl> 5.7, 5.4, 4.5, 5.7, 4.3, 5.4, 5.9, 5.4, 6.7, 5.8, 5.8, 5.~
## $ Camera <dbl> 4.8, 4.9, 3.7, 4.6, 3.5, 4.5, 4.7, 4.5, 6.8, 3.4, 4.4, 4.~
## $ Connectivity <dbl> 5.5, 5.4, 5.7, 6.7, 3.5, 4.5, 5.9, 4.5, 7.0, 5.6, 5.1, 5.~
## $ Battery <dbl> 5.9, 5.7, 7.7, 8.8, 4.4, 6.8, 6.9, 6.8, 8.9, 8.1, 7.9, 8.~
RAM dan Memory meskipun angka akan diubah menjadi faktor/kategori karena nilai nya berulang.
Sekarang data sudah rapih dan siap untuk digunakan pada tahap selanjutnya. Namun karena pada penelitian ini menggunakan metode PAM, maka akan dipilih hanya variabel yang bertipe numeric dan kategorik/faktor untuk pengelompokannya (kecuali harga dan Brand).
# Pilih faktor-faktor yang digunakan
data_spes <- data_sp[,-c(1:3)]
head(data_spes)
Ekplorasi data dilakukan agar kita menjadi lebih paham dengan gambaran awal dari data yang akan digunakan.
# Cek Missing Value
data_spes %>%
is.na() %>%
colSums()
## Processor RAM Memory Screen Performance Camera
## 0 0 0 0 0 0
## Connectivity Battery
## 0 0
Insight :
Tidak terdapat missing value, sehingga dapat dilanjutkan ke proses analisis.
# Melakukan pengecekan Summary Data
summary(data_spes)
## Processor RAM Memory Screen Performance Camera
## Exynos : 1 2:11 16: 2 Min. :3.200 Min. :4.300 Min. :3.400
## Mediatek :12 3: 8 32:16 1st Qu.:3.600 1st Qu.:5.375 1st Qu.:4.475
## Snapdragon: 9 4: 5 64: 6 Median :4.100 Median :5.700 Median :4.700
## Unisoc : 2 Mean :4.737 Mean :5.604 Mean :4.800
## 3rd Qu.:5.925 3rd Qu.:5.900 3rd Qu.:5.025
## Max. :7.000 Max. :6.700 Max. :7.100
## Connectivity Battery
## Min. :3.500 Min. :4.400
## 1st Qu.:5.075 1st Qu.:5.900
## Median :5.500 Median :7.750
## Mean :5.542 Mean :7.154
## 3rd Qu.:5.900 3rd Qu.:8.100
## Max. :7.600 Max. :8.900
Insight :
Untuk variabel Screen, Performance, Camera, Connectivity dan Battery memiliki perbedaan range data yang tidak terlalu jauh dan memiliki satuan yang sama, hal itu disebabkan karena satuan variabel-variabel tersebut adalah Score yang dimana penilaian diambil pada website kimovil.com.
Dapat terlihat bahwa persebaran untuk setiap variabel cukup merata dan tidak ada nilai ektrim (untuk memastikan akan dilakukan pengecekan Outlier)
boxplot(data_spes[, 4:8])
Insight :
Dari output di atas, dapat diketahui terdapat variabel memiliki outlier. Jika data outlier tersebut bukan disebabkan kesalahan input atau pengambilan data maka akan dibuang, namun karena data yang digunakan sesuai kenyataan yang ada, analis akan mempertahankan keberadaan outlier.
Algoritma Partitioning Around Medoids(PAM) atau bisa disebut K-Medoids adalah sebuah metode pengelompokan non-hierarki yang masih menjadi keluarga dekat dari metode K-Means. Metode PAM atau K-Medoids ini akan mengelompokan sekumpulan n objek menjadi ke beberapa k cluster.
Pada metode K-Means, penentuan sebuah objek masuk ke sebuah cluster tertentu berdasarkan perhitungan rata-rata jarak ecluidean. Sedangkan cara kerja metode K-Medoids akan diawali dengan penentuan Medoids (sebuah objek yang letaknya terpusat di dalam suatu cluster). Dari gambar di bawah, kita dapat melihat bagaimana perbedaan antara metode K-Means & K-Medoids dalam menentukan sebuah objek lebih sesuai untuk masuk ke sebuah cluster tertentu.
Penentuan Medoids itu tidak dilakukan hanya sekali, melainkan berulang sampai Medoids itu tidak bisa bergerak lagi. Mengapa tidak hanya sekali, dikarenakan peletakan Medoids belum tentu posisi paling optimal. Untuk mendapatkan posisi yang paling optimal nantinya posisi Medoids awal akan dihitung ulang total simpangannya dengan menggunakan rumus berikut di bawah ini.
\[ S = b - a \]
Dimana:
a
adalah cost jarak terdekat antara objek ke
medoid awalb
adalah cost jarak terdekat antara objek ke
medoid baruJika S < 0, maka tukar obyek dengan data untuk membentuk sekumpulan k baru sebagai Medoid
Langkah tersebut akan terus diulang sampai nantinya S > 0, yang berarti tidak adanya pergerakan lagi dari Medoid yang dipilih sebagai titik tengah. Dari titik Medoids yang paling optimum itu, akan dicari lagi objek yang menyerupai dari karakteristik Medoids tersebut.
Secara garis besar akan ada 3 langkah yang nantinya akan dilakukan, yaitu:
Ada satu metode yang dapat kita gunakan untuk kasus yang memiliki data campuran (data numerik dan data kategorikal) yaitu Gower Distance.
Metode Gower Distance nantinya akan melakukan perbandingan pada setiap observasi data yang ada terhadap data-data yang lainnya, dengan cara melakukan perhitungan skala antara kedua observasi yang dibandingkan dengan rentan 0 sampai 1.
Jika hasil dari perbandingannya mendekati 0 maka bisa dibilang kedua data tersebut identik atau jarak antara kedua observasi tersebut berdekatan sebaliknya jika rentang perbandingannya mendekati 1 bisa dibilang kedua data tersebut tidak identik atau jarak antara kedua observasi tersebut berjauhan.
Rumus Gower Distance:
\[ Gower Distance = \frac{1}{p}\sum\limits^p_{i=1}(Xnumeric, Xcateogrical) \]
Dimana:
p
= jumlah kolomXnumeric
: kondisi ketika kolom yang dibandingkan adalah
numeric\[ Xnumeric = \frac{|X_i - {Xj}|}{r} \]
Xi
= Data observasi 1
Xj
= Data observasi 2
r
= Range dari kolom observasi tersebut
Xcategorical
: Nilai yang akan diberikan ketika kolom
yang dibandingkan adalah categorical
Metode Gower Distance tersimpan pada library(cluster) dan fungsi yang bisa digunakan adalah daisy(). Pada fungsi tersebut nantinya akan ada 2 parameter yang bisa diisi, yaitu:
x
: Data frame yang ingin digunakan
metric
: Metode apa yang ingin digunakan, karena kita
akan menggunakan metode Gower Distance, kita bisa isi dengan
“gower”.
# Please type your code
data_spes_gd <- daisy(x = data_spes,
metric = "gower")
summary(data_spes_gd)
## 276 dissimilarities, summarized :
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2624 0.4145 0.4160 0.5674 0.9719
## Metric : mixed ; Types = N, N, N, I, I, I, I, I
## Number of objects : 24
Dalam menentukan jumlah kelompok yang paling optimum, kita data memanfaatkan metode Elbow Method. Metode tersebut dapat kita gunakan dengan fungsi fviz_nbclust() dari library(factoextra). Pada fungsi tersebut nantinya akan ada 3 parameter yang bisa diisi, yaitu:
Dengan metode pertama ini kita akan memvariasikan jumlah kelompok dengan menghitung Within Cluster Sum of Square (WSS). WSS adalah akan menghasilkan jumlah kuadrat jarak antara setiap observasi terhadap titik Medoids untuk setiap kemungkinan jumlah kelompok.
\[ WCSS = \sum\limits^N_{i=1}d(X_i - Xc)^2 \]
Dimana:
N
= cluster
Xi
= Data observation
Xc
= Titik medoids
d(Xi - Xc)
: Jarak antara setiap observasi data
terhadap titik medoids
Nilai WCSS akan berkurang nilai nya seiring dengan bertambahnya jumlah kelompok (nilai WCSS terbesar ketika K = 1). Ketika kita menganalisis grafik kita dapat melihat bahwa grafik akan berubah dengan cepat pada suatu titik dan dengan demikian menciptakan bentuk siku. Dari titik ini, grafik mulai bergerak hampir sejajar dengan sumbu X. Nilai K yang sesuai dengan titik ini adalah nilai K optimal atau jumlah kelompok yang optimal.
# Penentuan nilai K
set.seed(123)
elbow_method <- fviz_nbclust(x = as.matrix(data_spes_gd),
FUNcluster = pam,
method = "wss",
k.max = 10) +
labs(subtitle = "Elbow Method")
elbow_method
Note:
Fungsi set.seed()
digunakan untuk mengunci random
number generator sehingga hasil sampling tidak berubah setiap kali run
code.
Fungsi fviz_nbclust()
secara otomatis akan
menghitung WSS sampai dengan 10 kelompok (jumlah kelompok yang ingin
dicoba hitung bisa diatur secara manual sesuai dengan
kebutuhan).
Sekarang kita bisa memulai tahapan terakhir yaitu mengelompokan semua
data customer ke kelompok yang sudah ditentukan dengan menggunakan
fungsi pam()
. Pada fungsi tersebut nantinya akan ada 2
parameter yang bisa diisi, yaitu:
x
= Data frame yang ingin digunakank
= Jumlah kelompok# Clustering
pam_fit <- pam(x = data_spes_gd,
k = 4)
Fungsi di atas akan membantu kita untuk mengelompokan keseluruhan observasi data ke beberapa kelompok berdasarkan kemiripan setiap observasi terhadap titik pusat atau medoids. Supaya kita bisa mendapatkan intuisi awal bagaimana karakteristik customer untuk setiap kelompoknya, kita bisa melihat dari tabel di bawah ini.
data_spes[pam_fit$medoids, ]
Seperti yang sudah disampaikan, dengan melihat tabel di atas kita hanya bisa mendapatkan intuisi awal bagaimana karakteristik dari masing-masing kelompok yang dibuat. Supaya kita dapat melakukan interpretasi lebih detail dan melihat apakah pengelompokan yang kita lakukan sudah dapat memisahkan setiap observasi data dengan baik, kita bisa memanfaatkan metode statistik deskriptif dan visualisasi.
# Clustering
table(data_sp$Name, pam_fit$clustering)
##
## 1 2 3 4
## Alcatel 1S 1 0 0 0
## Alcatel 1SE 0 1 0 0
## Infinix Hot 10 Play 0 0 1 0
## Nokia C3 0 0 1 0
## Oppo A11 0 0 1 0
## Oppo A11K 0 0 1 0
## Oppo A15 1 0 0 0
## Poco M3 0 0 0 1
## Realme C11 0 0 1 0
## Realme C20 0 0 1 0
## Realme C21 1 0 0 0
## Redmi 9A 0 0 1 0
## Redmi 9C 1 0 0 0
## Redmi 9T 0 0 0 1
## Samsung Galaxy A02s 0 1 0 0
## Samsung Galaxy A10s 0 0 1 0
## Samsung Galaxy A11 1 0 0 0
## Samsung Galaxy J7 0 0 1 0
## Samsung Galaxy M11 1 0 0 0
## Sharp Aquos V SH-C02 0 0 0 1
## Vivo Y12S 0 0 1 0
## Vivo Y20 0 1 0 0
## Vivo Y91C 0 0 1 0
## Zenfone 4 Max 1 0 0 0
Insight:
Berdasarkan hasil pengelompokan diketahui anggota masing-masing kelompok adalah sebagai berikut:
Kelompok 1 : Alcatel 1S, Oppo A15, Realme C21, Redmi 9C, Samsung Galaxy A11, Samsung Galaxy M11 dan Zenfone 4 Max.
Kelompok 2 : Alcatel 1SE, Samsung Galaxy A02s dan Vivo Y20.
Kelompok 3 : Infinix Hot 10 Play, Nokia C3, Oppo A11, Oppo A11K, Realme C11, Realme C20, Redmi 9A, Samsung Galaxy A10s, Samsung Galaxy J7, Vivo Y12S dan Vivo Y91C.
Kelompok 4 : Poco M3, Redmi 9T dan Sharp Aquos V SH-C02.
pam_results <- data_sp[, -c(1:2)] %>%
mutate(cluster = pam_fit$clustering) %>%
group_by(cluster) %>%
do(the_summary = summary(.))
pam_results$the_summary[[1]]
## Price Processor RAM Memory Screen Performance
## Min. :1456000 Exynos :0 2:0 16:0 Min. :3.200 Min. :4.50
## 1st Qu.:1522500 Mediatek :4 3:7 32:7 1st Qu.:3.850 1st Qu.:5.35
## Median :1599000 Snapdragon:3 4:0 64:0 Median :4.100 Median :5.70
## Mean :1614000 Unisoc :0 Mean :4.429 Mean :5.50
## 3rd Qu.:1699500 3rd Qu.:4.800 3rd Qu.:5.85
## Max. :1799000 Max. :6.400 Max. :5.90
## Camera Connectivity Battery cluster
## Min. :3.700 Min. :4.800 Min. :5.900 Min. :1
## 1st Qu.:4.700 1st Qu.:5.400 1st Qu.:6.550 1st Qu.:1
## Median :4.700 Median :5.700 Median :7.700 Median :1
## Mean :4.686 Mean :5.571 Mean :7.214 Mean :1
## 3rd Qu.:4.950 3rd Qu.:5.800 3rd Qu.:7.850 3rd Qu.:1
## Max. :5.100 Max. :6.100 Max. :8.100 Max. :1
Insight :
Smartphone di kelompok 1 memiliki karakteristik sebagai berikut: - Jenis processor Mediatek atau Snapdragon. - RAM sebesar 3 GB. - Memory sebesar 32 GB. - Harga berkisar pada 1.456.000 hingga 1.799.000 Rupiah. - Dan score rata-rata untuk Screen, Performance, Camera, Connerctivity dan Battery masing-masing adalah 4.429, 5.50, 4.686, 5.571 dan 7.214.
pam_results$the_summary[[2]]
## Price Processor RAM Memory Screen Performance
## Min. :1599000 Exynos :0 2:0 16:0 Min. :3.6 Min. :5.40
## 1st Qu.:1749500 Mediatek :0 3:1 32:0 1st Qu.:3.6 1st Qu.:5.40
## Median :1900000 Snapdragon:2 4:2 64:3 Median :3.6 Median :5.40
## Mean :1832667 Unisoc :1 Mean :3.6 Mean :5.70
## 3rd Qu.:1949500 3rd Qu.:3.6 3rd Qu.:5.85
## Max. :1999000 Max. :3.6 Max. :6.30
## Camera Connectivity Battery cluster
## Min. :4.80 Min. :5.200 Min. :5.700 Min. :2
## 1st Qu.:4.85 1st Qu.:5.200 1st Qu.:6.800 1st Qu.:2
## Median :4.90 Median :5.200 Median :7.900 Median :2
## Mean :4.90 Mean :5.267 Mean :7.267 Mean :2
## 3rd Qu.:4.95 3rd Qu.:5.300 3rd Qu.:8.050 3rd Qu.:2
## Max. :5.00 Max. :5.400 Max. :8.200 Max. :2
Insight :
Smartphone di kelompok 2 memiliki karakteristik sebagai berikut: - Jenis processor Snapdragon atau Unisoc. - RAM sebesar 3 atau 4 GB. - Memory sebesar 64 GB. - Harga berkisar pada 1.599.000 hingga 1.999.000 Rupiah. - Dan score rata-rata untuk Screen, Performance, Camera, Connerctivity dan Battery masing-masing adalah 3.6, 5.70, 4.90, 5.267 dan 7.267.
pam_results$the_summary[[3]]
## Price Processor RAM Memory Screen Performance
## Min. :1209000 Exynos :1 2:11 16:2 Min. :3.600 Min. :4.30
## 1st Qu.:1297000 Mediatek :8 3: 0 32:9 1st Qu.:3.800 1st Qu.:5.15
## Median :1429000 Snapdragon:1 4: 0 64:0 Median :4.000 Median :5.40
## Mean :1506818 Unisoc :1 Mean :4.655 Mean :5.40
## 3rd Qu.:1649000 3rd Qu.:5.700 3rd Qu.:5.75
## Max. :1999000 Max. :6.500 Max. :6.30
## Camera Connectivity Battery cluster
## Min. :3.400 Min. :3.500 Min. :4.400 Min. :3
## 1st Qu.:4.050 1st Qu.:4.500 1st Qu.:5.850 1st Qu.:3
## Median :4.500 Median :5.100 Median :6.800 Median :3
## Mean :4.391 Mean :5.264 Mean :6.982 Mean :3
## 3rd Qu.:4.550 3rd Qu.:5.750 3rd Qu.:8.000 3rd Qu.:3
## Max. :6.000 Max. :7.600 Max. :8.900 Max. :3
Insight :
Smartphone di kelompok 3 memiliki karakteristik sebagai berikut: - Jenis processor beragam dengan Mediatek yang paling banyak. - RAM sebesar 2 GB. - Memory sebesar 16 atau 32 GB. - Harga berkisar pada 1.209.000 hingga 1.999.000 Rupiah. - Dan score rata-rata untuk Screen, Performance, Camera, Connerctivity dan Battery masing-masing adalah 4.655, 5.40, 4.391, 5.264 dan 6.982.
pam_results$the_summary[[4]]
## Price Processor RAM Memory Screen Performance
## Min. :1799000 Exynos :0 2:0 16:0 Min. :6.70 Min. :6.20
## 1st Qu.:1836500 Mediatek :0 3:0 32:0 1st Qu.:6.85 1st Qu.:6.40
## Median :1874000 Snapdragon:3 4:3 64:3 Median :7.00 Median :6.60
## Mean :1891000 Unisoc :0 Mean :6.90 Mean :6.50
## 3rd Qu.:1937000 3rd Qu.:7.00 3rd Qu.:6.65
## Max. :2000000 Max. :7.00 Max. :6.70
## Camera Connectivity Battery cluster
## Min. :5.500 Min. :5.800 Min. :4.800 Min. :4
## 1st Qu.:6.150 1st Qu.:6.400 1st Qu.:6.850 1st Qu.:4
## Median :6.800 Median :7.000 Median :8.900 Median :4
## Mean :6.467 Mean :6.767 Mean :7.533 Mean :4
## 3rd Qu.:6.950 3rd Qu.:7.250 3rd Qu.:8.900 3rd Qu.:4
## Max. :7.100 Max. :7.500 Max. :8.900 Max. :4
Insight :
Smartphone di kelompok 4 memiliki karakteristik sebagai berikut: - Jenis processor Snapdragon. - RAM sebesar 4 GB. - Memory sebesar 64 GB. - Harga berkisar pada 1.799.000 hingga 2.000.000 Rupiah. - Dan score rata-rata untuk Screen, Performance, Camera, Connerctivity dan Battery masing-masing adalah 6.90, 6.50, 6.467, 6.767 dan 7.533.
Berdasarkan hasil analisis diatas data smart phone dapat dikelompokan menjadi 4 kelompok dengan rincian sebagai berikut:
Kelompok 1, dengan anggota kelompoknya yaitu Alcatel 1S, Oppo A15, Realme C21, Redmi 9C, Samsung Galaxy A11, Samsung Galaxy M11 dan Zenfone 4 Max memiliki processor Mediatek atau Snapdragon, RAM sebesar 3 GB dan Memory sebesar 32 GB, dengan karakteristik nilai rata-rata cukup baik dari setiap aspek yang ada.
Kelompok 2, dengan anggotanya yaitu Alcatel 1SE, Samsung Galaxy A02s dan Vivo Y20 memiliki processor Snapdragon atau Unisoc, RAM sebesar 3 atau 4 GB dan Memory sebesar 64 GB, dengan karakteristik nilai rata-rata aspek cukup baik namun aspek Screen yang rendah.
Kelompok 3, dengan anggotanya yaitu Infinix Hot 10 Play, Nokia C3, Oppo A11, Oppo A11K, Realme C11, Realme C20, Redmi 9A, Samsung Galaxy A10s, Samsung Galaxy J7, Vivo Y12S dan Vivo Y91C memiliki RAM sebesar 2 GB dan Memory sebesar 16 atau 32 GB, dengan karakteristik yang beragam dari processor hingga harga-nya.
Kelompok 4, dengan anggotanya yaitu Poco M3, Redmi 9T dan Sharp Aquos V SH-C02 memiliki processor Snapdragon, RAM sebesar 4 GB dan Memory sebesar 64 GB, dengan karakteristik nilai rata-rata tertinggi dari setiap aspek yang ada, namun harga rata-rata paling mahal.
Pada bagian ini akan diberikan rekomendasi dari peneliti, jika customer ingin mendapatkan smart phone dengan performa terbaik dari setiap aspek maka sebaiknya customer membeli smart phone yang ada dalam kelompok 4.
# Smart phone kelompok 4
data_sp %>%
mutate(cluster = pam_fit$clustering) %>%
filter(cluster == 4) %>%
select(-c(cluster)) %>%
arrange(Price)