0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan30 halaman

Format Modul Praktikum

Modul praktikum ini mencakup berbagai materi tentang analisis data, termasuk penerapan algoritma apriori dan analisis kluster menggunakan Python dan Jupyter Notebook. Mahasiswa diharapkan dapat memahami dan menerapkan teknik clustering seperti Agglomerative dan K-Means untuk menganalisis data pelanggan. Selain itu, modul juga mencakup langkah-langkah praktikum, interpretasi output, dan tugas yang harus diselesaikan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan30 halaman

Format Modul Praktikum

Modul praktikum ini mencakup berbagai materi tentang analisis data, termasuk penerapan algoritma apriori dan analisis kluster menggunakan Python dan Jupyter Notebook. Mahasiswa diharapkan dapat memahami dan menerapkan teknik clustering seperti Agglomerative dan K-Means untuk menganalisis data pelanggan. Selain itu, modul juga mencakup langkah-langkah praktikum, interpretasi output, dan tugas yang harus diselesaikan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 30

Isi Modul Praktikum:

●Cover (https://bit.ly/coverdaftarisi)

●Daftar Isi (https://bit.ly/coverdaftarisi)

●Judul Materi

●Sub-CPMK

●Software yang Digunakan

●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

Ukuran Kertas A5, spasi 1, font Cambria 11

Deadline: 05 Februari 2025


Modul dikumpulkan dalam bentuk word
di Gdrive yang sudah disediakan.

2
Materi 1

ASSOCIATION RULES

Sub-CPMK

Mahasiswa mampu menerapkan algoritma apriori untuk


menyelesaikan kasus market basket analysis.

Software

Python, Jupyter Notebook

3
Materi 2

CLUSTER ANALYSIS

Sub-CPMK

Mahasiswa mampu menerapkan hierarchical dan


nonhierarchical clustering dalam menyelesaikan kasus
segmentasi objek.

Software

Python, Jupyter Notebook

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.

Jarak dalam cluster


Clustering banyak
minimum digunakan dalam
berbagai bidang, misalnya :
Jarak antar cluster
● Biologi, dalam pengelompokkan
maksimum
gen yang memiliki fungsi yang sama.
● Bisnis dalam pengelompokkan
konsumen yang berpotensi untuk
analisa dan strategi pemasaran.
● Selain itu clustering juga bisa digunakan sebagai pendeteksi outlier.

● 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.

Manhattan (City Block)


n
d ( a , b ) =∑ |a i−bi|
i=1

Ukuran ini umumnya digunakan untuk data numerik yang berdimensi tinggi.

Simple Dissimilarity Measure


n
d ( a , b ) =∑ s i ( x j , x 2 )
i=1

di mana
si ( x 1 , x 2 )={0 , x 1=x 2 1 , x 1 ≠ x 2

Ukuran ini digunakan untuk khusus untuk data kategorik saja.

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.

Hierarchical Clustering (Agglomerative)


Metode ini dimulai dari setiap pengamatan sebagai sebuah cluster kecil yang
kemudian digabungkan sampai semuanya bergabung menjadi satu cluster besar.

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.

Fuzzy C-Means Clustering


Metode ini merupakan penyempurnaan dari metode K-Means dengan
menggabungkan prinsip Fuzzy. Perbedaan utama antara K-Means dan Fuzzy C-Means
adalah bahwa K-Means merupakan hard clustering di mana suatu data hanya boleh
menjadi anggota satu kelompok saja, sementara FCM adalah soft clustering di mana
suatu data boleh menjadi anggota beberapa kelompok. Pada FCM, pemilihan akhir
anggota cluster untuk setiap titik data ditentukan oleh probabilitas tertinggi terhadap
kedekatannya dengan cluster tersebut yang berada pada rentang 0 sampai 1.

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.

Kasus dan Deskripsi Variabel


Misalkan Anda adalah anggota tim pemasaran dari suatu pusat perbelanjaan.
Anda ingin memahami tipe pelanggan yang dapat dijadikan target pemasaran dengan
strategi yang sesuai. Harapannya strategi yang tepat dapat menaikkan keuntungan
perusahaan Anda.

Variabel Deskripsi Tipe Keterangan

CustomerID ID Pelanggan

Gender Jenis Kelamin Pelanggan Kategorik Female, Male

Income Pendapatan Tahunan Pelanggan ($) Numerik

Spending Skor yang diberikan kepada pelanggan Numerik


Score berdasarkan kebiasaan dan riwayat

8
belanjanya

Mengimport Libraries / Modules

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

AgglomerativeClustering dari sklearn.cluster adalah Library yang digunakan


untuk menjalankan metode Agglomerative. Sedangkan sch dari scipy.cluster.hierarchy
adalah library yang digunakan untuk menampilkan dendrogram.
Mengimport Data

mall = pd.read_excel('Mall Customer.xlsx')


mall.head()

pd.read_excel dari pandas merupakan syntax yang digunakan untuk memanggil


data excel berbentuk xlsx, xls, odt, dsb.

Menampilkan Dimensi dan Tipe Variabel

mall.info()

Terdapat 37 amatan dengan 4 variabel. Pastikan tipe variabel sudah sesuai


dengan deskripsi yang diberikan.

9
Menampilkan Statistika Deskriptif

mall.describe(include='all')

Include=’all’ pada syntax di atas menampilkan statistika desriptif dari semua


kolom yang ada, baik numerik maupun kategorik.

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()

mall.set_index merupakan syntax yang digunakan untuk mengubah index data


dari kolom tertentu, simpan sebagai mall2 untuk membedakan dengan data awal.

10
Memilih Variabel untuk Proses Clustering

X = mall2.iloc[:, [1, 2]]


X.head()

iloc merupakan syntax yang digunakan untuk mengambil kolom tertentu. [:, [1,
2]] artinya mengambil kolom dengan index 1 (Income) dan index 2 (Spending).

Melakukan Proses Standarisasi

from sklearn.preprocessing import StandardScaler


X_stand = pd.DataFrame(preprocessing.StandardScaler().fit_transform(X))
X_stand.head()
StandardScaler dari sklearn.preprocessing adalah library yang digunakan untuk
standarisasi data.

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()

plt.figure(figsize) merupakan syntax yang digunakan untuk mengatur ukuran


grafik. method = ‘complete’ pada sch.linkage artinya pada kasus ini perhitungan jarak
antar clusternya menggunakan algoritma complete. metric = ‘euclidean’ artinya
perhitungan jarak antar amatannya menggunakan jarak euclid. labels=mall2.index
pada sch.dendrogram artinya menampilkan label customer ID pada dendrogram yang
terbentuk.

Menentukan Jumlah Cluster


Untuk menentukan jumlah cluster dari hasil dendrogram, maka kita perlu
mencari jarak vertikal (tegak) terbesar yang tidak dilewati oleh garis horizontal
(mendatar).

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)

n_clusters adalah jumlah kluster yang terbentuk melalui dendrogram


sebelumnya. linkage = ‘complete’ pada artinya perhitungan jarak antar cluster
menggunakan algoritma complete sama saja seperti pada dendrogram. affinity =
‘euclidean’ artinya perhitungan jarak antar amatannya menggunakan jarak euclid. Baik
dendrogram maupun metode agglomerative ini diterapkan pada data yng telah
distandarisasi.
Mengelompokkan Customer Sesuai Hasil Cluster

mall2['cluster'] = clust.labels_
mall2.head(10)

13
Clust.labels_ menampilkan kelompok dari setiap amatan.

Menghitung Nilai Silhouette

from sklearn.metrics import silhouette_score


sil = silhouette_score(X_stand, mall2['cluster'])

silhouette_score dari sklearn.metrics adalah library yang digunakan untuk


menghitung nilai silhouette.

Menggambarkan Hasil Cluster

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

from sklearn.cluster import KMeans


score=[]
for k in range(2, 11):
kmeans = KMeans(n_clusters=k, random_state=123).fit(X_stand)
silhouette_avg = silhouette_score(X_stand,kmeans.labels_)
score.append(silhouette_score(X_stand,kmeans.labels_))
print('Silhouette Score untuk %i Cluster: %0.4f' % (k,
silhouette_avg))

score=[ ] adalah syntax kosong untuk menyimpan nilai silhouette. for k in


range(2,11) adalah syntax looping untuk mencoba nilai k dari 2 sampai 10.
random_state memastikan pengacakan selalu memberikan hasil yang sama jika proses
dijalankan ulang. score.append menggabungkan data X_stand dengan label hasil
clustering.

15
plt.plot(range(2, 11), score, 'o-')
plt.xlabel("Value for k")
plt.ylabel("Silhouette score")
plt.show()

Berdasarkan hasil percobaan 2 sampai 10 cluster, nilai silhouette tertinggi yaitu


0.6458 berada pada k =3. Artinya jumlah kluster optimal untuk K-Means adalah 3.

Menerapkan Metode K-Means dengan 3 Cluster

from sklearn.cluster import KMeans


kmean=KMeans(n_clusters=3, random_state=123)
kmean.fit(X_stand)

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)

kmean.labels_ menampilkan kelompok dari setiap amatan.

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.

Informasi yang didapatkan dari grafik di atas adalah :

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.

Menentukan Jumlah Cluster

from fcmeans import FCM


score_FCM=[]
for k in range(2, 11):
cmeans = FCM(n_clusters=k, random_state = 123)
cmeans.fit(X_stand2)
labels = cmeans.predict(X_stand2)
silhouette_FCM = silhouette_score(X_stand2, labels)
score_FCM.append(silhouette_score(X_stand2,labels))
print('Silhouette Score untuk %i Cluster: %0.4f' % (k,
silhouette_FCM))

Score_FCM=[ ] adalah syntax kosong untuk menyimpan nilai silhouette. for k in


range(2,11) adalah syntax looping untuk mencoba nilai k dari 2 sampai 10.
random_state memastikan pengacakan selalu memberikan hasil yang sama jika proses

18
dijalankan ulang. Score_FCM.append menggabungkan data X_stand2 dengan label
hasil clustering.

plt.plot(range(2, 11), score_FCM, 'o-')


plt.xlabel("Value for k")
plt.ylabel("Silhouette score")
plt.show()

Berdasarkan hasil percobaan 2 sampai 10 cluster, nilai silhouette tertinggi yaitu


0.6458 berada pada k =3. Artinya jumlah kluster optimal untuk K-Means adalah 3.

Menerapkan Metode FCM dengan 3 Cluster

my_cluster = FCM(n_clusters=3, random_state=123)


my_cluster.fit(X_stand2)

n_clusters adalah jumlah kluster optimal dengan nilai silhouette tertinggi.


random_state memastikan pengacakan selalu memberikan hasil yang sama jika proses
dijalankan ulang. Seperti halnya K-Means, untuk FCM ini juga diterapkan pada data
yang telah distandarisasi (berbentuk array).
Mengelompokkan Customer Sesuai Hasil Cluster

labels = my_cluster.predict(X_stand2)
mall2['fcm'] = labels
mall2.head(10) 19
kmean.labels_ menampilkan kelompok dari setiap amatan.

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.

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

● UCI Machine Learning

● Datahack

● RDA (Climate & Weather)

● BMKG

2. Deskripsikan data yang kalian miliki.


● Statistika deskriptif variabel numerik

● Statistika deskriptif variabel kategorik

● 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.

4. Tentukan cluster terbaik dari metode-metode yang kalian coba di poin 3.

22
Materi 3

REGRESSION MODELS

Sub-CPMK

Mahasiswa mampu menerapkan berbagai metode


supervised learning untuk menyelesaikan kasus regresi.

Software

Python, Jupyter Notebook

23
Materi 4

CLASSIFICATION MODELS

Sub-CPMK

Mahasiswa mampu menerapkan berbagai metode


supervised learning untuk menyelesaikan kasus klasifikasi.

Software

Python, Jupyter Notebook

24
Materi 5

ENSEMBLE MODELS

Sub-CPMK

Mahasiswa mampu menerapkan berbagai metode


supervised learning untuk menyelesaikan kasus klasifikasi.

Software

Python, Jupyter Notebook

25
Materi 6

IMBALANCED DATASET

Sub-CPMK

Mahasiswa mampu menerapkan berbagai metode


supervised learning untuk menyelesaikan kasus klasifikasi.

Software

Python, Jupyter Notebook

26
Materi 7

TIME SERIES CASES

Sub-CPMK

Mahasiswa mampu menerapkan berbagai metode


supervised learning untuk menyelesaikan kasus deret
waktu.

Software

Python, Jupyter Notebook

27
Materi 8

NEURAL NETWORK
REGRESSION

Sub-CPMK

Mahasiswa mampu menerapkan jaringan syaraf tiruan


untuk prediksi pada berbagai kasus.

Software

Python, Jupyter Notebook

28
Materi 9

NEURAL NETWORK
CLASSIFICATION

Sub-CPMK

Mahasiswa mampu menerapkan jaringan syaraf tiruan


untuk prediksi pada berbagai kasus.

Software

Python, Jupyter Notebook

29
30

Anda mungkin juga menyukai