Untitled
Learning by Building - Unsupervised Learning
Dimensionality Reduction USArrests Data
Disini saya akan melakukan reduksi dimensi pada data penangkapan kejahatan dari 50 daerah di US. Variabel yang akan digunakan yaitu ada 4 yaitu mengenai Murder, Assault, Urbanpop, dan Rape.
Tujuan dalam melakukan reduksi dimensi ini adalah untuk nantinya agar bisa melakukan visualisasi lebih dari 2 dimensi data untuk melakukan clustering daerah-daerah yang memiliki karakteristik kejahatan yang sama.
Step pertama yang akan dilakukan yaitu melakukan read data dan melakukan pre-processing data.
## 'data.frame': 50 obs. of 4 variables:
## $ Murder : num 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
## $ Assault : int 236 263 294 190 276 204 110 238 335 211 ...
## $ UrbanPop: int 58 48 80 50 91 78 77 72 80 60 ...
## $ Rape : num 21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
cek adanya missing value data
## Murder Assault UrbanPop Rape
## 0 0 0 0
Setelah selesai melakukan pre-processing, maka tahap selanjutnya yaitu membuat model PCA. Pada langkah reduksi dimensi menggunakan PCA ini, saya menggunakan prcomp().
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.5749 0.9949 0.59713 0.41645
## Proportion of Variance 0.6201 0.2474 0.08914 0.04336
## Cumulative Proportion 0.6201 0.8675 0.95664 1.00000
Karena tujuan saya adalah reduksi dimensi, saya ingin mempertahankan informasi pada data sebanyak ~95%. Oleh karena itu, maka saya akan menggunakan PC1 hingga PC3.
Selanjutnya saya ingin melihat daerah-daerah mana yang memiliki potensi paling banyak terjadinya kejahatan.
Dari visualisasi diatas, daerah yang memiliki tingkat kejahatan Murder tertinggi adalah Alaska, tingkat kejahatan Assault tertinggi adalah Florida, dan tingkat kejahatan tertinggi untuk Rape adalah Nevada. Oleh karena itu, misalkan nantinya saya ingin berkunjung ke US, saya akan lebih prepare terhadap diri sendiri terutama jika saya akan berkunjung ke-3 daerah tersebut.
Selanjutnya saya ingin melihat kelompok-kelompok daerah yang memiliki tipe kejahatan yang sama.
Dalam membuat cluster, saya akan coba menggunakan elbow method untuk menentukan banyak clusternya.
Elbow Plot
Pada elbow plot ini nilai penurunan wss secara signifikan dimulai pada k=3 dan k=4. Maka saya akan coba membuat cluster menggunakan k=3 dan k=4.
## [1] 17 20 13
Dari hasil clustering menggunakan k-means, diperoleh 3 kelompok dimana untuk cluster 1 ada 17 daerah, cluster 2 ada 20 daerah, dan cluster 3 ada 13 daerah.
Dari 3 cluster yang sudah terbentuk, dilihat nilai wss dibawah ini sudah cukup kecil.
## [1] 69.8284
Untuk nilai proporsi bss nya, sudah cukup baik karena sudah sekitar 62,7%.
## [1] 0.6275857
Selanjutnya saya akan coba visualisasikan daerah-daerah yang dalam satu cluster dari variabel-variabel yang ada.
Pada tahap ini saya akan mencoba untuk memvisualisasikan beberapa cluster yang terbentuk dari data USArrests ini.
for(i in 3:6){
set.seed(100)
model <- kmeans(us_new, i)
print(paste("propororsi bss dengan k",i, ";",model$betweenss/model$totss))
print(fviz_cluster(model, USArrests))
}## [1] "propororsi bss dengan k 3 ; 0.627585711228569"
## [1] "propororsi bss dengan k 4 ; 0.742524754230027"
## [1] "propororsi bss dengan k 5 ; 0.775047645769795"
## [1] "propororsi bss dengan k 6 ; 0.790991280623349"
Pada case ini saya akan memilih banyak cluster sebanyak 3 karena setiap cluster terlihat terpartisi dengan baik dan nilai bss yang dihasilkan juga tidak terlalu kecil yaitu sebesar 62,7%.
Insight
Insight yang bisa didapatkan adalah :