Format Modul Praktikum
Format Modul Praktikum
●Cover (https://bit.ly/coverdaftarisi)
●Judul Materi
●Sub-CPMK
●Ringkasan Materi
●Langkah/Tahapan Praktikum
(jika menggunakan bahasa pemrograman,
harap dijelaskan terkait syntax yang
digunakan.
Jika menggunakan software seperti
eviews/spss, dsb, harap ditampilkan
screenshoot atau tahapan klik-nya)
● Interpretasi Output
●Tugas Praktikum
●Daftar Pustaka
1
●Nomor Halaman
2
Materi 1
ASSOCIATION RULES
Sub-CPMK
Software
3
Materi 2
CLUSTER ANALYSIS
Sub-CPMK
Software
4
Pengantar Cluster Analysis
Cluster Analysis adalah metode statistik yang digunakan untuk mengelompokkan
objek/individu sedemikian sehingga objek dalam kelompok/cluster yang sama memiliki
karakteristik yang mirip sedangkan objek dari kelompok/cluster yang berbeda memiliki
karakteristik yang kontras atau berbeda.
● Dsb.
Terdapat dua metode paling populer dalam clustering, yaitu hierakhi dan non-
hierarkhi.
● Hierarchical Clustering dimulai dengan setiap pengamatan sebagai sebuah cluster
kecil yang kemudian digabungkan sampai semuanya bergabung menjadi satu
cluster besar (Metode Agglomerative). Metode ini tidak disarankan untuk data
berukuran besar.
● Nonhierarchical Clustering dimulai dengan K tertentu yang menunjukkan jumlah
cluster yang diinginkan, kemudian pengamatan dibagi menjadi K cluster (Metode
Partisi).
Konsep Jarak
5
Hasil clustering yang baik akan menghasilkan tingkat kesamaan yang tinggi dalam
satu cluster dan tingkat kesamaan yang rendah antar cluster. Jarak adalah pendekatan
yang umum dipakai untuk menentukan kesamaan atau ketidaksamaan dua objek.
Semakin mirip karakteristik antar objek, maka semakin kecil jarak antara keduanya dan
begitu pula sebaliknya.
Ada beberapa macam rumus perhitungan jarak, di antaranya adalah
Euclidean
d ( a , b ) =√ ❑
Ukuran ini digunakan untuk data numerik saja. Ukuran ini memiliki masalah jika
skala nilai dari salah satu vaiabel sangat besar dibandingkan variabel lainnya. Oleh
sebab itu, nilai-nilai variabel sering dinormalisasi atau distandarisasi untuk
menyamakan ukuran skalanya.
Ukuran ini umumnya digunakan untuk data numerik yang berdimensi tinggi.
di mana
si ( x 1 , x 2 )={0 , x 1=x 2 1 , x 1 ≠ x 2
Gower
p
1
d G , i , j= ∑ s j ( x 1 , x 2 )
p j=1
Data numerik:
|x 2−x 1|
s j ( x1 , x2)=
R
Data Kategorik:
s j ( x 1 , x 2 ) ={0 , x 1=x 2 1 , x 1 ≠ x 2
Jarak ini digunakan untuk data campuran numerik dan kategorik. p adalah jumlah
variabel, dan R adalah rentang atau range dalam suatu variabel.
6
Algoritma Agglomerative Hierarchical Clustering:
1. Buat setiap amatan sebagai cluster, sehingga akan terbentuk N cluster.
2. Hitung jarak antar amatan.
3. Gabungkan dua cluster yang memiliki jarak terdekat berdasarkan metode
pengelompokan (Single Linkage, Complete Linkage, Average Linkage, dll)
4. Ulangi langkah 2 dan 3 hingga terbentuk satu cluster besar yang memuat seluruh
amatan.
5. Buat suatu dendrogram untuk menggambarkan proses penggabungan clusternya.
K-Means Clustering
Merupakan metode clustering yang mengelompokkan objek ke dalam 𝑘 cluster
berdasarkan jarak dengan centroid terdekat.
Algoritma K-Means Clustering:
1. Tentukan jumlah cluster (k ) terlebih dahulu.
2. Pilih secara acak k titik sebagai centroid.
3. Hitung jarak setiap amatan dari centroid terpilih.
4. Kelompokkan amatan ke centroid terdekat.
5. Hitung ulang centroid baru (rata-rata) berdasarkan cluster yang terbentuk.
6. Hitung kembali jarak setiap amatan dari centroid yang baru.
7. Kelompokkan ulang amatan menurut centroid terdekat.
8. Ulangi langkah 4 - 6 sampai centroid tidak berpindah atau tidak ada perubahan
anggota cluster.
7
Algoritma FCM Clustering:
Silhouette Score
Silhouette adalah ukuran seberapa mirip suatu objek dengan klusternya sendiri
dibandingkan dengan kluster lain. Semakin tinggi nilai silhouette, semakin bagus
cluster yang terbentuk.
b ( o )−a(o)
S ( o )=
max { a ( o ) ,b (o) }
a (o) adalah rata-rata jarak dalam satu cluster, dan b (o) adalah rata-rata jarak kluster
terdekat lainnya.
CustomerID ID Pelanggan
8
belanjanya
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn.cluster import AgglomerativeClustering
import scipy.cluster.hierarchy as sch
mall.info()
9
Menampilkan Statistika Deskriptif
mall.describe(include='all')
count, unique, top dan freq merupakan statistika deskriptif untuk variabel
kategorik. Mean, std, min, dan seterusnya merupakan statistika deskriptif untuk
variabel numerik. Nilai NaN pada kolom CustomerID, Income dan Spending
menunjukkan bahwa count, unique, top dan freq tidak bisa ditentukan, hal ini
dikarenakan kolom-kolom tersebut bertipe numerik. Begitupula sebaliknya dengan
kolom Gender, tidak bisa dihitung mean, std, dan seterusnya karena kolom ini bertipe
kategorik.
Berdasarkan ouput di atas, customer perempuan lebih banyak dibandingkan laki-
laki (dilihat dari top). Rata-rata income customer adalah $56783, dengan minimal
income adalah $35000 dan maksimal income $71000. Rata-rata spending score
customer adalah 37.38 dengan minimal spending score adalah 1 dan maksimal adalah
85.
Menentukan CustomerID sebagai Index
mall2 = mall.set_index('CustomerID')
mall2.head()
10
Memilih Variabel untuk Proses Clustering
iloc merupakan syntax yang digunakan untuk mengambil kolom tertentu. [:, [1,
2]] artinya mengambil kolom dengan index 1 (Income) dan index 2 (Spending).
Standarisasi ini dilakukan karena setiap variabel memiliki skala dan satuan yang
berbeda. Transformasi ini akan merubah data sehingga setiap variabel memiliki rata-
rata 0 dan standar deviasi 1.
11
AGGLOMERATIVE
Membuat Dendrogram untuk Melihat Cluster yang Terbentuk
plt.figure(figsize = (15,6))
dendrogram = sch.dendrogram(sch.linkage(X_stand,
method='complete', metric='euclidean'), labels=mall2.index)
plt.title('Mall Customer Dendrogram')
plt.xlabel('Customer ID')
plt.ylabel('Jarak Euclid')
plt.show()
12
Dengan menarik garis mendatar pada garis vertikal dengan jarak terbesar, maka kita
bisa menghitung jumlah cluster yang ada di garis (mendatar) tersebut. Jadi jumlah
kluster yang terbentuk adalah 3 kluster.
Menerapkan Metode Agglomerative
agglo = AgglomerativeClustering(n_clusters=3,
affinity='euclidean', linkage='complete')
clust = agglo.fit(X_stand)
mall2['cluster'] = clust.labels_
mall2.head(10)
13
Clust.labels_ menampilkan kelompok dari setiap amatan.
plt.figure(figsize = (15,6))
sns.scatterplot(data=mall2,
x='Income',
y='Spending',
hue='cluster',
palette='rainbow',
s=500).set_title('Mall Customer Clustering')
hue adalah kelompok atau grup dari titik data. palette adalah palet warna yang
digunakan. s adalah ukuran titik atau bulatan data pada grafik.
14
Informasi yang didapatkan dari grafik di atas adalah :
● Cluster 0 memiliki karakteristik customer dengan spending score dan income yang
tinggi.
● Cluster 1 memiliki karakteristik customer dengan spending score dan income yang
rendah.
● Cluser 2 memiliki karakteristik customer dengan spending score rendah dan
income yang tinggi.
Umumnya kelompok yang menjadi target promosi adalah Cluster 0 dan Cluster 2.
K-MEANS
Menentukan Jumlah Cluster
15
plt.plot(range(2, 11), score, 'o-')
plt.xlabel("Value for k")
plt.ylabel("Silhouette score")
plt.show()
n_clusters adalah jumlah kluster optimal dengan nilai silhouette tertinggi. Seperti
halnya metode agglomerative, untuk K-means ini juga diterapkan pada data yang telah
distandarisasi.
Mengelompokkan Customer Sesuai Hasil Cluster
mall2['clustkmeans'] = kmean.labels_
mall2.head(10)
16
Menggambarkan Hasil Cluster
plt.figure(figsize = (15,6))
sns.scatterplot(data=mall2,
x='Income',
y='Spending',
hue='clustkmeans',
palette='rainbow',
s=500).set_title('Mall Customer Clustering')
hue adalah kelompok atau grup dari titik data. palette adalah palet warna yang
digunakan. s adalah ukuran titik atau bulatan data pada grafik.
17
● Cluster 0 memiliki karakteristik customer dengan spending score dan income yang
tinggi.
● Cluster 1 memiliki karakteristik customer dengan spending score dan income yang
rendah.
● Cluser 2 memiliki karakteristik customer dengan spending score rendah dan
income yang tinggi.
Umumnya kelompok yang menjadi target promosi adalah Cluster 0 dan Cluster 2.
FUZZY C-MEANS
Merubah Data Sehingga Berbentuk Array (Matriks)
X_stand2 = X_stand.to_numpy()
X_stand2
to_numpy adalah syntax untuk merubah dataframe menjadi suatu array atau
matriks.
18
dijalankan ulang. Score_FCM.append menggabungkan data X_stand2 dengan label
hasil clustering.
labels = my_cluster.predict(X_stand2)
mall2['fcm'] = labels
mall2.head(10) 19
kmean.labels_ menampilkan kelompok dari setiap amatan.
plt.figure(figsize = (15,6))
sns.scatterplot(data=mall2,
x='Income',
y='Spending',
hue='clustkmeans',
palette='rainbow',
s=500).set_title('Mall Customer Clustering')
hue adalah kelompok atau grup dari titik data. palette adalah palet warna yang
digunakan. s adalah ukuran titik atau bulatan data pada grafik.
20
Informasi yang didapatkan dari grafik di atas adalah:
● Cluster 0 memiliki karakteristik customer dengan spending score rendah dan
income yang tinggi.
● Cluster 1 memiliki karakteristik customer dengan spending score dan income yang
rendah.
● Cluser 2 memiliki karakteristik customer dengan spending score dan income yang
tinggi.
Umumnya kelompok yang menjadi target promosi adalah Cluster 0 dan Cluster 2.
Kesimpulan
Ketiga metode memberikan nilai silhouette yang sama. Seandainya ada
perbedaan nilai silhouette, maka metode yang dipilih adalah metode yang
menghasilkan nilai silhouette tertinggi.
Tugas Praktikum 2
1. Cari kasus / data dari sumber-sumber berikut:
● BPS
● Kaggle
● Datahack
● BMKG
● Tipe variabel
21
3. Lakukan pengelompokkan data menggunakan minimal 2 metode clustering dari
yang sudah diajarkan dan berikan interpretasi karakteristik dari masing-masing
kelompok yang terbentuk.
22
Materi 3
REGRESSION MODELS
Sub-CPMK
Software
23
Materi 4
CLASSIFICATION MODELS
Sub-CPMK
Software
24
Materi 5
ENSEMBLE MODELS
Sub-CPMK
Software
25
Materi 6
IMBALANCED DATASET
Sub-CPMK
Software
26
Materi 7
Sub-CPMK
Software
27
Materi 8
NEURAL NETWORK
REGRESSION
Sub-CPMK
Software
28
Materi 9
NEURAL NETWORK
CLASSIFICATION
Sub-CPMK
Software
29
30