Laporan Clustering 42520011
Laporan Clustering 42520011
Laporan Clustering 42520011
Disusun Oleh :
MARYAM AZZAHRA
42520011
3A D4 TKJ
2021
I. Tujuan
Tujuan praktikum ini adalah :
1. Mahasiswa mampu merancang system algoritma Clustering
2. Mahasiswa mampu melakukan simulasi hasil rancangan pada Python dan Streamlit
Algoritma Clustering
Clustering merupakan proses partisi satu set objek data ke dalam himpunan bagian yang disebut
dengan cluster. Objek yang di dalam cluster memiliki kemiripan karakteristik antar satu sama
lainnya dan berbeda dengan cluster yang lain. Partisi tidak dilakukan secara manual melainkan
dengan suatu algoritma clustering. Oleh karena itu, clustering sangat berguna dan bisa
menemukan group atau kelompokyang tidak dikenal dalam data. Clustering banyak digunakan
dalam berbagai aplikasi seperti misalnya pada business inteligence, pengenalan pola citra, web
search, bidang ilmu biologi, dan untuk keamanan (security). Di dalam business
inteligence, clustering bisa mengatur banyak customer ke dalam banyaknya kelompok. Contohnya
mengelompokan customer ke dalam beberapa cluster dengan kesamaan karakteristik yang
kuat. Clustering juga dikenal sebagai data segmentasi karena clustering mempartisi banyak data
set ke dalam banyak group berdasarkan kesamaannya. Selain itu clustering juga bisa
sebagai outlier detection.
Manfaat Clustering
1. Clustering merupakan metode segmentasi data yang sangat berguna dalam prediksi dan
analisa masalah bisnis tertentu. Misalnya Segmentasi pasar, marketing dan pemetaan
zonasi wilayah.
2. Identifikasi obyek dalam bidang berbagai bidang seperti computer vision dan image
processing.
Keterangan:
N = Jumlah record data
K= Urutan field data
r= 2
µk= Bobot field yang diberikan user
Jarak adalah pendekatan yang umum dipakai untuk menentukan kesamaan atau ketidaksamaan dua
vektor fitur yang dinyatakan dengan ranking. Apabila nilai ranking yang dihasilkan semakin kecil
nilainya maka semakin dekat/tinggi kesamaan antara kedua vektor tersebut. Teknik pengukuran
jarak dengan metode Euclidean menjadi salah satu metode yang paling umum digunakan.
Pengukuran jarak dengan metode euclidean dapat dituliskan dengan persamaan berikut:
dimana v1 dan v2 adalah dua vektor yang jaraknya akan dihitung dan N menyatakan panjang
vektor.
import streamlit as st
import pandas as pd
import numpy as np
from tkinter import *
from sklearn.cluster import KMeans
from matplotlib import pyplot as plt
from sklearn.preprocessing import StandardScaler
#Visualisasi datasheet
plt.scatter(df['JumlahAnggotaKeluarga'], df['Penghasilan (juta
rupiah)'])
plt.xlabel('JumlahAnggotaKeluarga')
plt.ylabel('Penghasilan (juta rupiah)')
scaler = StandardScaler()
scaler.fit(df)
df_scaled = scaler.transform(df)
df_scaled
4. Mengubah data array ke dalam dataframe agar dapat diolah dalam K-Means Clustering
df_scaled = pd.DataFrame(df_scaled,
columns=['JumlahAnggotaKeluarga','Penghasilan (juta rupiah)'])
df_scaled
km = KMeans(n_clusters=3)
km
y_predicted =
km.fit_predict(df_scaled[['JumlahAnggotaKeluarga','Penghasilan (juta
rupiah)']])
y_predicted
df['tipePenghasilan'] = y_predicted
df
df1 = df[df.tipePenghasilan==0]
df2 = df[df.tipePenghasilan==1]
df3 = df[df.tipePenghasilan==2]
plt.scatter(df1.JumlahAnggotaKeluarga,df1['Penghasilan (juta
rupiah)'],color='green')
plt.scatter(df2.JumlahAnggotaKeluarga,df2['Penghasilan (juta
rupiah)'],color='red')
plt.scatter(df3.JumlahAnggotaKeluarga,df3['Penghasilan (juta
rupiah)'],color='black')
plt.xlabel('JumlahAnggotaKeluarga')
plt.ylabel('Penghasilan (juta rupiah)')
plt.grid()
conditions = [
(df['tipePenghasilan']==0),
(df['tipePenghasilan']==1),
(df['tipePenghasilan']==2)]
choices = ['Rendah','Rata-Rata','Tinggi']
df['tipePenghasilan'] = np.select(conditions, choices)
df