Email             :
RPubs            : https://rpubs.com/JoHndes9
Department  : Business Statistics
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.



1 Pendahuluan

Dalam analisis data, dua teknik umum yang sering digunakan untuk memahami struktur dan pola dalam data adalah klasifikasi dan klastering. Kedua teknik ini memiliki tujuan dan pendekatan yang berbeda, namun keduanya penting dalam membantu organisasi membuat keputusan yang didasarkan pada data.

1.1 Definisi Klasifikasi

Klasifikasi adalah teknik yang digunakan untuk memprediksi kategori atau label dari suatu data berdasarkan pada fitur-fitur yang ada. Tujuan utama dari klasifikasi adalah untuk mengidentifikasi pola atau hubungan antara fitur-fitur input dan variabel target yang ingin diprediksi. Misalnya, kita dapat menggunakan klasifikasi untuk memprediksi apakah suatu email adalah spam atau bukan berdasarkan pada kontennya, atau untuk memprediksi apakah seorang pasien memiliki penyakit tertentu berdasarkan pada gejala yang mereka alami.

1.2 Definisi Klastering

Di sisi lain, klastering adalah teknik yang digunakan untuk mengelompokkan data menjadi kelompok-kelompok yang homogen berdasarkan pada kemiripan antar data. Tujuan dari klastering adalah untuk menemukan struktur tersembunyi dalam data yang tidak diketahui sebelumnya. Dalam klastering, tidak ada variabel target yang ingin diprediksi; sebaliknya, kita mencari pola alami dalam data yang memungkinkan kita untuk mengelompokkan data menjadi kelompok-kelompok yang berbeda. Misalnya, dalam analisis pasar, kita dapat menggunakan klastering untuk mengidentifikasi segmen pelanggan yang berbeda berdasarkan pada perilaku pembelian mereka.

1.3 Klasifikasi vs Klastering

Meskipun klasifikasi dan klastering keduanya adalah teknik yang digunakan untuk analisis data, mereka memiliki perbedaan yang mendasar dalam tujuan dan pendekatan:

Tujuan: Tujuan klasifikasi adalah untuk memprediksi label atau kategori dari suatu data, sementara tujuan klastering adalah untuk mengelompokkan data menjadi kelompok-kelompok yang homogen. Pendekatan: Dalam klasifikasi, kita memiliki variabel target yang ingin diprediksi, sedangkan dalam klastering, kita tidak memiliki variabel target yang jelas dan kami mencari struktur alami dalam data.

2 Studi Kasus: Alisis Pelanggan

Dalam studi kasus ini, akan didemonstrasikan bagaimana klasifikasi dan klastering dapat diterapkan pada data pelanggan sebuah perusahaan e-commerce untuk memahami perilaku pembelian mereka dan menyusun strategi pemasaran yang lebih efektif.

2.1 Dataset

Andaikan, kita akan menggunakan data pelanggan e-commerce yang mencakup beberapa fitur seperti usia, jenis kelamin, total pembelian, harga produk, kategori produk yang dibeli, dan frekuensi pembelian.

set.seed(123)
jumlahbaris=1000
pelanggan=data.frame(
  id=1:jumlahbaris,
  usia=sample(18:70,jumlahbaris,replace = T),
  kelamin=as.factor(sample(c("pria","wanita"),jumlahbaris,replace = T)),
  Total_pembelian=rnorm(jumlahbaris,mean = 100,sd=20),
  kategori_produk=as.factor(sample(c("a","b","c"),jumlahbaris,replace = T)),
  frequensi_pembeilian=sample(1:10,jumlahbaris,replace = T),
  harga=rnorm(jumlahbaris,mean = 50,sd=10)
)

2.2 Klasifikasi

Mari kita lihat bagaimana kita dapat memprediksi kategori produk yang akan dibeli oleh pelanggan berdasarkan pada fitur-fitur

Dalam pendekatan klasifikasi, toko ingin mengidentifikasi pelanggan yang mungkin memiliki preferensi tertentu atau potensi untuk melakukan pembelian tertentu di masa depan. Misalnya, mereka ingin memprediksi apakah seorang pelanggan tertentu akan lebih mungkin membeli pakaian pria atau wanita.

  • Fitur: Informasi tentang pembelian sebelumnya,seperti usia, jenis kelamin, total pembelian, harga produk, dan frekuensi pembelian.
  • Variabel Target: Katergori Produk (pria/wanita).
  • Algoritma: Klasifikasi dapat menggunakan algoritma seperti KNN dan Decision Trees (notes: ada banyak yang model klasifikasi lainnya) untuk membangun model yang dapat memprediksi jenis kelamin berdasarkan pola pembelian sebelumnya.

2.2.1 Model KNN

2.2.2 Model Decision Trees

library(caret)
set.seed(123)
trainind=createDataPartition(pelanggan$kategori_produk,p=0.7,list = F)
trains=pelanggan[trainind,]
tests=pelanggan[-trainind,]
model=train(kategori_produk~usia+kelamin+Total_pembelian+frequensi_pembeilian+harga,data = trains,method="rpart")
predksi=predict(model,newdata=tests)
confusionMatrix(predksi,tests$kategori_produk)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   a   b   c
##          a   0   0   0
##          b  93 113  93
##          c   0   0   0
## 
## Overall Statistics
##                                           
##                Accuracy : 0.3779          
##                  95% CI : (0.3227, 0.4355)
##     No Information Rate : 0.3779          
##     P-Value [Acc > NIR] : 0.5218          
##                                           
##                   Kappa : 0               
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: a Class: b Class: c
## Sensitivity             0.000   1.0000    0.000
## Specificity             1.000   0.0000    1.000
## Pos Pred Value            NaN   0.3779      NaN
## Neg Pred Value          0.689      NaN    0.689
## Prevalence              0.311   0.3779    0.311
## Detection Rate          0.000   0.3779    0.000
## Detection Prevalence    0.000   1.0000    0.000
## Balanced Accuracy       0.500   0.5000    0.500

2.3 Klastering

Dalam pendekatan klastering, toko ingin mengelompokkan pelanggannya ke dalam kelompok berdasarkan pola pembelian yang serupa. Ini membantu mereka memahami segmentasi pasar dan menyesuaikan strategi pemasaran dan layanan untuk setiap kelompok.

  • Fitur: Data transaksi pelanggan seperti seperti usia, total pembelian, frekuensi pembelian, dan harga.
  • Algoritma: Salah satu pendekatan yang bisa digunakan adalah K-Means Clustering. Dengan algoritma ini, toko dapat mengelompokkan pelanggan ke dalam kelompok-kelompok yang memiliki pola pembelian yang mirip. Misalnya, satu kelompok mungkin terdiri dari pelanggan yang sering membeli pakaian formal, sementara kelompok lainnya mungkin terdiri dari pelanggan yang lebih suka pakaian kasual. Dalam klasifikasi, tujuannya adalah untuk membuat prediksi tentang kategori atau kelas tertentu berdasarkan fitur yang diberikan, sementara dalam klastering, tujuannya adalah untuk mengelompokkan data tanpa informasi target yang jelas. Dalam kasus ini, klasifikasi membantu toko untuk memprediksi preferensi pembelian individu, sementara klastering membantu mereka untuk memahami segmentasi pasar dan pola pembelian yang ada di antara kelompok pelanggan yang berbeda.

2.3.1 Algoritma Kmeans

Sebelum menerapkan algoritma dalam membentuk kluster, langkah pertama yang penting dilakukan adalah melakukan pemilihan jumlah kluster yang optimal. Berikut ini diperlihatkan pemilihan jumlah kluster menggunakan metode elbow, silhouette, dan gap statistic.

Pastikan untuk menginstal paket-paket tersebut jika belum terpasang. Sekarang, mari kita tambahkan bagian kode untuk masing-masing metode.

library(ggplot2)
library(cluster)
library(factoextra)
library(NbClust)
library(caret)
library(FactoMineR)
customer=data.frame(
  usia=c(25,35,45,20,30,50,65,40,55,60),
  kelamin=c("pria","pria","wanita","wanita","pria","pria","wanita","wanita","pria","wanita"),
  pembelian=c(100,200,150,80,300,400,200,250,350,500),
  harga=c(50,60,70,40,55,65,75,45,70,80),
  kategori=c("a","b","a","c","b","c","a","b","c","a"),
  frekuensi=c(2,3,2,4,1,2,3,1,2,3)
)
numerik=customer[,c("usia","pembelian","harga","frekuensi")]
scaled=scale(numerik)

2.3.1.1 Metode Elbow

methode elbow menggunakan grafik dengan within-cluster sum of square sebagai axis y dan jumlah kluster pada axis x,jumlah kluster yang digunakan pada titik yang terbuatnya bentuk elbow

pca=PCA(scaled,graph=F)
cumulativ=cumsum(pca$var$cor)
plot(cumulativ,xlab = "komponen utama",ylab = "variansi kumulatif",type = "b")

2.3.1.2 Metode Silhouette (Tugas)

shiloutte method menggunakan silhoutte score untuk menentukan jumlah kluster yang optimal. silhoute score merukan score yang memiliki range dari -1 sampai 1 yang menghitung consistency dari suatu object dibanding dari isi clusternya dan cluster yang lain, nilai yang tinggi berarti ia similar dengan isi clusternya dan berbeda dengan isi cluster yang lain, jika terdapat banyak object memiiki nilai yang tinggi maka configurasi cluster cocok.

fviz_nbclust(scaled,kmeans,k.max = 9,method = "silhouette")

2.3.1.3 Metode Gap Statistic (Tugas)

gap statistic membandingkan total variasi di dalam cluster dengan nilai yang diekspektasikan dalam refrensi distribusi data null. jumlah cluster yang optimal yang dipilih adalah cluster yang mengmaksimal gap statistic

fviz_nbclust(scaled,kmeans,k.max = 9,method = "gap_stat")

2.3.1.4 hasil klustering

jadi berdasarkan hasil ketiga test tersebut maka akan digunakan 3 cluster

clusters=kmeans(scaled,centers = 3)
fviz_cluster(clusters,data = scaled)