• Tidak ada hasil yang ditemukan

LAPORAN UJIAN TENGAH SEMESTER PEMBELAJARAN MESIN

N/A
N/A
Mateus AS

Academic year: 2024

Membagikan "LAPORAN UJIAN TENGAH SEMESTER PEMBELAJARAN MESIN"

Copied!
19
0
0

Teks penuh

(1)

LAPORAN UJIAN TENGAH SEMESTER PEMBELAJARAN MESIN

Data-Data Description-Preprocessing-Modelling-Performance, Algoritma Kmeans-Hierarchical-DBScan

Kelas F

Dosen pengampu:

Rosalia Arum Kumalasanti M.T.

Disusun oleh:

Nama: Mateus Appuwan Situmorang NIM: 215314128

PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2023

(2)

PENDAHULUAN

1.1. Latar Belakang

Dataset Wholesale Costomers adalah sebuah sumber data yang sangat beragam, yang mencakup informasi tentang pembelian berbagai jenis produk oleh pelanggan di industri grosir. Data ini mencakup sejumlah besar atribut yang mencerminkan berbagai aspek transaksi, termasuk jumlah pembelian produk seperti "Fresh", "Milk", "Grocery",

"Frozen", "Detergents_Paper", dan "Delicassen". Selain itu, dataset ini juga mencantumkan dua atribut kategorikal yang sangat relevan, yaitu "Jenis Kanal Distribusi (Channel)" dan "Wilayah Geografis (Region)".

Atribut "Jenis Kanal Distribusi" memberikan informasi tentang bagaimana produk tersebut didistribusikan ke pelanggan, dengan opsi "Horeka" (Hotel/Restoran/Kafe) dan

"Ritel" (Retail) yang mencerminkan dua saluran distribusi utama yang berbeda. Atribut

"Wilayah Geografis" mengidentifikasi tiga wilayah geografis berbeda, termasuk

"Lisbon," "Oporto," dan "Region lainnya," yang menunjukkan variasi geografis dalam pola pembelian produk.

Analisis data pada dataset Wholesale Costomers memberikan wawasan mendalam tentang perilaku konsumen, preferensi pembelian produk, kebutuhan bisnis di berbagai saluran distribusi, dan bagaimana faktor geografis memengaruhi tren konsumen. Data ini juga relevan dalam konteks perencanaan rantai pasokan dan pengelolaan persediaan, di mana pemahaman yang mendalam tentang permintaan produk sangat penting.

Dalam era bisnis yang semakin kompetitif dan berbasis data, dataset Wholesale Costomers menjadi aset berharga dalam menginformasikan keputusan strategis. Dengan melakukan analisis data yang tepat, perusahaan dan organisasi dapat memaksimalkan efisiensi operasi, memahami pasar lebih baik, dan mengoptimalkan strategi distribusi mereka. Oleh karena itu, penelitian atau proyek yang melibatkan dataset Wholesale Costomers dapat berkontribusi pada peningkatan performa bisnis dan daya saing di sektor grosir yang dinamis.

(3)

1.2. Tujuan

Melalui pemahaman yang mendalam terhadap dataset Wholesale Costomers dan implementasi analisis yang relevan, analisis memanfaatkan data ini yang memiliki potensi yang sangat signifikan dalam memberikan wawasan penting bagi perusahaan dan organisasi dalam berbagai aspek bisnisnya. Salah satu tujuan utama dari penelitian atau proyek ini adalah mengidentifikasi segmentasi pelanggan yang beragam, dengan berdasarkan preferensi pembelian mereka yang berbeda. Ini akan memungkinkan perusahaan untuk lebih memahami perilaku dan kebutuhan pelanggan dalam kelompok- kelompok tertentu, yang pada gilirannya dapat digunakan untuk menyusun strategi pemasaran yang lebih sesuai dan efektif.

Selain itu, dengan memanfaatkan data ini, proyek atau penelitian juga dapat membangun model peramalan permintaan produk yang akurat. Model peramalan ini akan membantu perusahaan dalam perencanaan persediaan yang lebih efisien dan efektif, menghindari kelebihan persediaan atau kekurangan produk, dan pada akhirnya memastikan ketersediaan produk yang optimal sesuai dengan permintaan pasar.

Tidak hanya itu, analisis tren pasar yang dilakukan dalam proyek atau penelitian ini juga akan memberikan wawasan yang berharga tentang faktor-faktor yang mungkin memengaruhi penjualan produk tertentu. Dengan memahami tren pasar ini, perusahaan dapat merespons perubahan dalam permintaan konsumen, mengidentifikasi peluang pertumbuhan, dan menghindari potensi risiko bisnis.

Terakhir, fokus pada pengoptimalan persediaan akan membantu perusahaan dalam meningkatkan efisiensi rantai pasokan mereka. Data dari dataset Wholesale Costomers dapat digunakan untuk mengembangkan strategi pengelolaan persediaan yang lebih cerdas, mengurangi biaya persediaan yang tidak perlu, dan meningkatkan respons terhadap perubahan permintaan pelanggan.

Dengan demikian, melalui pemahaman yang dalam terhadap dataset Wholesale Costomers dan analisis yang tepat, ini akan menjadi alat yang kuat dalam mendukung perusahaan dan organisasi dalam mengambil keputusan yang lebih tepat dan meningkatkan kinerja mereka di pasar grosir yang kompetitif dan berbasis data.

(4)

1.3. Ruang Lingkup

Dataset ini memiliki ruang lingkup yang terfokus pada analisis dataset Wholesale Costomers, dengan tujuan utama untuk memahami perilaku konsumen, meningkatkan efisiensi rantai pasokan, melakukan analisis pasar, dan mendukung pengambilan keputusan strategis. Berikut adalah ruang lingkup rinci dari dataset ini:

1. Pengumpulan Data:

• Mengakses dan mengumpulkan data dari dataset Wholesale yang mencakup informasi pembelian produk, jenis kanal distribusi, dan wilayah geografis.

2. Pemahaman Data:

• Melakukan eksplorasi data untuk memahami struktur dataset, statistik deskriptif, dan karakteristik atribut.

3. Segmentasi Pelanggan:

• Menganalisis perilaku konsumen dengan melakukan segmentasi pelanggan berdasarkan preferensi pembelian produk.

• Menggunakan teknik seperti analisis klaster (clustering) untuk mengidentifikasi kelompok pelanggan yang berbeda.

4. Peramalan Permintaan:

• Membangun model peramalan permintaan produk yang akan digunakan untuk perencanaan persediaan.

• Menggunakan algoritma peramalan yang sesuai, seperti regresi linier atau metode deret waktu.

5. Analisis Tren Pasar:

• Menganalisis tren pasar yang mungkin memengaruhi penjualan produk tertentu.

• Menggunakan visualisasi data dan analisis statistik untuk mengidentifikasi tren ini.

6. Pengoptimalan Persediaan:

• Meningkatkan efisiensi rantai pasokan dengan menganalisis data persediaan produk.

• Mengidentifikasi strategi pengelolaan persediaan yang lebih cerdas untuk menghindari kelebihan persediaan atau kekurangan produk.

7. Pengambilan Keputusan Strategis:

• Menganalisis data untuk mendukung pengambilan keputusan strategis perusahaan.

• Menggunakan wawasan yang diperoleh dari analisis untuk menentukan strategi penawaran produk, penetapan harga yang optimal, dan lokasi toko yang efektif.

8. Pelaporan dan Dokumentasi:

(5)

• Membuat laporan hasil analisis yang mencakup temuan, kesimpulan, dan rekomendasi.

• Menyertakan visualisasi data, grafik, dan tabel yang mendukung analisis.

(6)

1.4. Implementasi

Implementasi teknis dari analisis dataset Wholesale Customers terdiri dari serangkaian langkah-langkah yang melibatkan penggunaan pustaka dan algoritma yang sesuai untuk analisis data. Berikut adalah penjelasan langkah-langkah implementasi tersebut:

1. Pengumpulan Data:

• Data diunduh dari sumber yang tersedia menggunakan pustaka `gdown`.

• Data dimuat ke dalam DataFrame dengan menggunakan pustaka `pandas`.

2. Pemeriksaan Data:

• Dilakukan pemeriksaan awal terhadap data, termasuk mendeteksi apakah ada data yang hilang atau tidak valid.

• Statistik deskriptif digunakan untuk memahami karakteristik data.

3. Analisis Korelasi:

• Matriks korelasi digunakan untuk menganalisis hubungan antara atribut dalam dataset.

• Korelasi dapat memberikan wawasan tentang sejauh mana atribut-atribut tersebut berkaitan satu sama lain.

4. Analisis Distribusi Data:

• Dengan menggunakan visualisasi boxplot, dilakukan analisis distribusi data untuk setiap atribut.

• Hal ini membantu dalam mendeteksi data yang mencurigakan (outliers) dan memahami sebaran data.

5. Preprocessing Data:

• Data dinormalisasi menggunakan metode StandardScaler. Normalisasi adalah langkah penting dalam analisis data untuk memastikan data dalam skala yang seragam.

6. Penentuan Jumlah Cluster (K-Means):

• Untuk algoritma K-Means, dilakukan penentuan jumlah cluster yang optimal dengan metode elbow.

• Metode elbow digunakan untuk menemukan titik optimal di mana penambahan cluster tidak memberikan penurunan yang signifikan dalam inersia.

7. K-Means Clustering:

• K-Means clustering dilakukan dengan jumlah cluster yang telah ditentukan.

• Hasil clustering dimasukkan ke dalam kolom "Cluster K-means" dalam dataset.

(7)

8. Hierarchical Clustering (Agglomerative):

• Hierarchical clustering dilakukan menggunakan algoritma Agglomerative Clustering dengan jumlah cluster yang sama.

• Hasil clustering dimasukkan ke dalam kolom "Cluster Hierarchical" dalam dataset.

9. DBScan Clustering:

• DBScan clustering dilakukan dengan menentukan parameter epsilon (eps) dan minimum samples (min_samples).

• Hasil clustering dimasukkan ke dalam kolom "Cluster DBScan" dalam dataset.

10. Evaluasi Kualitas Clustering:

• Metrik Silhouette Score digunakan untuk mengevaluasi kualitas pengelompokan dari K-Means, Hierarchical, dan DBScan.

• Silhouette Score memberikan gambaran tentang seberapa baik data terkelompok.

11. Visualisasi Data Hasil Clustering:

• Data direduksi menjadi dua dimensi menggunakan analisis komponen utama (PCA) untuk kemudian divisualisasikan.

• Hasil clustering dari K-Means, Hierarchical, dan DBScan ditampilkan dalam scatter plot.

12. Analisis Hasil Clustering:

• Data hasil clustering untuk setiap algoritma dianalisis dengan mencetak statistik rata-rata untuk setiap cluster.

• Hasil analisis ditampilkan untuk masing-masing algoritma clustering.

13. Pelaporan Hasil:

• Hasil analisis, temuan, kesimpulan, dan rekomendasi dapat disusun ke dalam laporan untuk dipresentasikan atau digunakan dalam pengambilan keputusan strategis.

(8)

1.8. Perbandingan Hasil Tiap Algoritma

Dari percobaan yang saya lakukan di tiap algoritma dan saya mendapatkan hasilnya sebagai berikut ini:

1. K-Means:

Cluster 0: 344 data.

Cluster 1: 88 data.

Cluster 2: 8 data.

K-Means membagi data menjadi tiga cluster dengan cluster 0 memiliki sebagian besar data, cluster 1 memiliki data yang lebih sedikit, dan cluster 2 memiliki jumlah data yang sangat sedikit. K-Means bekerja dengan baik untuk data dengan pola terdefinisi dengan jelas.

2. Agglomerative Clustering:

Cluster 1: 281 data.

Cluster 2: 153 data.

Cluster 0: 6 data.

Agglomerative Clustering memiliki hasil yang mirip dengan K-Means dengan tiga cluster, tetapi dengan perbedaan dalam alokasi data di beberapa cluster. Cluster 1 memiliki data terbanyak, cluster 2 memiliki data lebih banyak daripada cluster 0.

Agglomerative Clustering cocok untuk data dengan pola hirarki.

3. DBSCAN:

Cluster 0: 261 data.

Noise (Cluster -1): 174 data.

Cluster 1: 5 data.

DBSCAN menghasilkan dua cluster utama (0 dan 1) dan juga menandai beberapa data sebagai noise (Cluster -1). Cluster 0 memiliki jumlah data terbanyak, diikuti oleh noise (data yang tidak termasuk dalam cluster manapun), dan cluster 1 memiliki data yang sangat sedikit. DBSCAN bekerja dengan baik untuk data yang memiliki kepadatan yang berbeda di seluruh dataset.

Jadi dapat disimpulkan bahwa, K-Means dan Agglomerative Clustering menghasilkan hasil yang serupa dengan jumlah data yang terbanyak di satu kelompok dan jumlah data yang lebih sedikit di kelompok lain. DBSCAN mengidentifikasi beberapa data sebagai noise, yang bisa berguna dalam mendeteksi data yang tidak cocok dengan kelompok tertentu.

(9)

1.8. Analisis

Dari hasil pengelompokan yang telah saya lakukan dengan tiga algoritma clustering: K- Means, Agglomerative Clustering, dan DBSCAN. Maka analisis yang dapat saya berikan berkaitan dengan pengelompokan itu adalah sebagai berikut:

1. K-Means Clustering:

• Dalam pengelompokan K-Means, data telah dibagi menjadi tiga kelompok (Cluster 0, Cluster 1, dan Cluster 2).

• Cluster 0 adalah yang terbesar dengan 344 data, dan cluster ini mungkin mencakup pelanggan yang paling banyak berbelanja di berbagai kategori produk.

• Cluster 1 memiliki 88 data, menunjukkan kelompok pelanggan yang mungkin berbelanja dalam jumlah sedang.

• Cluster 2 adalah yang paling kecil dengan hanya 8 data, yang mungkin mencakup kelompok pelanggan yang berbelanja dalam jumlah besar.

2. Agglomerative Clustering:

• Agglomerative Clustering juga menghasilkan tiga kelompok (Cluster 0, Cluster 1, dan Cluster 2).

• Cluster 1 adalah yang terbesar dengan 281 data, menunjukkan kelompok pelanggan dengan tingkat aktivitas belanja yang tinggi.

• Cluster 2 memiliki 153 data, yang mungkin merupakan kelompok pelanggan dengan tingkat aktivitas belanja yang sedang.

• Cluster 0 adalah yang paling kecil dengan hanya 6 data, dan ini bisa mencakup kelompok pelanggan yang berbelanja dalam jumlah besar.

3. DBSCAN:

• DBSCAN mengidentifikasi tiga kelompok, tetapi juga mengidentifikasi data sebagai "noise" (Cluster -1).

• Cluster 0 memiliki 261 data, yang mungkin mencakup kelompok pelanggan yang aktif berbelanja.

• Noise (Cluster -1) memiliki 174 data, yang mungkin adalah pelanggan dengan karakteristik yang berbeda atau tidak masuk ke dalam kelompok tertentu.

• Cluster 1 adalah yang paling kecil dengan hanya 5 data, yang mungkin mencakup kelompok pelanggan dengan tingkat aktivitas belanja yang sangat tinggi.

Dalam analisis ini, saya telah menggunakan tiga pendekatan berbeda untuk mengelompokkan pelanggan berdasarkan pola pembelian mereka. Setiap algoritma memiliki kelebihan dan kekurangan, dan pemilihan yang tepat tergantung pada tujuan bisnis. Dalam hal ini, kita dapat memilih algoritma yang sesuai dengan tujuan kita, seperti

(10)

mengidentifikasi kelompok pelanggan dengan tingkat belanja tertentu atau mendeteksi data pelanggan yang unik atau noise yang mungkin perlu perhatian khusus.

(11)

1.8. Listing Code

Listing code Komentar

# Memasukkan pustaka pandas untuk manipulasi dan analisis data.

import pandas as pd

# Mengimpor pustaka NumPy untuk operasi numerik.

import numpy as np

# Mengimpor pustaka Matplotlib untuk membuat visualisasi data.

import matplotlib.pyplot as plt

# Mengimpor algoritma pengelompokan dari scikit-learn.

from sklearn.cluster import KMeans, AgglomerativeClustering, DBSCAN

# Mengimpor pustaka untuk penskalaan fitur data menggunakan StandardScaler.

from sklearn.preprocessing import StandardScaler

# Mengimpor metrik Silhouette Score untuk mengevaluasi kualitas

pengelompokan.

from sklearn.metrics import silhouette_score

# Mengimpor analisis komponen utama (PCA) untuk melakukan reduksi dimensi data.

from sklearn.decomposition import PCA

# Mengimpor fungsi untuk membagi data menjadi data pelatihan dan data

pengujian.

from sklearn.model_selection import train_test_split

# Mengimpor model regresi linear dari scikit-learn.

from sklearn.linear_model import LinearRegression

# Mengimpor metrik Mean Squared Error (MSE) untuk mengevaluasi performa model regresi linear.

from sklearn.metrics import mean_squared_error

Kode di samping pengimportan berbagai pustaka dan ini merupakan pustaka yang diperlukan untuk melakukan analisis data Wholesale Customers.

Berikut adalah penjelasan singkat dari setiap importan:

1. pandas as pd: Pustaka Pandas digunakan untuk manipulasi dan analisis data tabular.

Ini memungkinkan kita untuk memuat, mengatur, dan mengolah data dengan mudah.

2. numpy as np: Pustaka NumPy digunakan untuk operasi numerik, termasuk perhitungan matematika dan manipulasi array.

3. matplotlib.pyplot as plt: Pustaka Matplotlib digunakan untuk membuat visualisasi data, seperti plot grafik dan grafik.

4. from sklearn.cluster import KMeans, AgglomerativeClustering, DBSCAN:

Modul ini mengimpor algoritma pengelompokan, termasuk K-Means, Agglomerative Clustering, dan DBSCAN, yang akan digunakan dalam analisis clustering.

5. from sklearn.preprocessing import StandardScaler: Modul ini mengimpor metode StandardScaler, yang digunakan untuk penskalaan fitur data agar memiliki mean 0 dan deviasi standar 1.

6. from sklearn.metrics import silhouette_score: Modul ini mengimpor metrik Silhouette Score, yang digunakan untuk mengevaluasi kualitas pengelompokan.

7. from sklearn.decomposition import PCA: Modul ini mengimpor analisis komponen utama (PCA), yang digunakan untuk melakukan reduksi dimensi data.

8. from sklearn.model_selection import train_test_split: Modul ini mengimpor fungsi untuk membagi data menjadi data

(12)

# Mengimpor pustaka Seaborn untuk visualisasi data yang lebih

interaktif.

import seaborn as sns

pelatihan dan data pengujian. Hal ini digunakan dalam model regresi linear.

9. from sklearn.linear_model import LinearRegression: Modul ini mengimpor model regresi linear, yang digunakan untuk membangun model prediksi.

10. from sklearn.metrics import mean_squared_error: Modul ini mengimpor metrik Mean Squared Error (MSE), yang digunakan untuk mengevaluasi performa model regresi linear.

11. seaborn as sns: Pustaka Seaborn digunakan untuk visualisasi data yang lebih interaktif dan menarik.

import gdown

#

https://drive.google.com/file/d/1f279- G0iWg-I-

ysycw1EYFQQUHVdIKs7/view?usp=sharing

id = '1f279-G0iWg-I- ysycw1EYFQQUHVdIKs7' output = 'wholesale.csv'

gdown.download(id=id, output=output)

Kode di samping digunakan untuk mengunduh file CSV dari Google Drive menggunakan pustaka Python bernama gdown. Kode ini mengidentifikasi URL Google Drive yang mengarah ke file CSV dengan menggunakan ID file dari URL tersebut. Kemudian, dengan bantuan gdown.download, kode ini mengunduh file tersebut dan menyimpannya sebagai

"wholesale.csv" di komputer lokal. Dengan demikian, file "wholesale.csv" akan tersedia secara lokal dan dapat digunakan untuk analisis data selanjutnya.

# Mengimpor data

data = pd.read_csv('wholesale.csv')

Kode di samping adalah langkah untuk mengimpor data dari file 'wholesale.csv' menggunakan pustaka Pandas. Data dari file tersebut akan dimuat ke dalam sebuah struktur data yang disebut DataFrame yang akan digunakan untuk analisis lebih lanjut. Jadi, data dari file 'wholesale.csv' akan tersedia dalam bentuk DataFrame dengan nama 'data'.

# Menampilkan Informasi Dataset info_dataset = data.info()

Kode di samping untuk menampilkan informasi terperinci tentang dataset tersebut. Informasi tersebut mencakup jumlah data yang valid, jumlah kolom, tipe data setiap kolom, dan apakah terdapat data yang hilang (missing) atau tidak valid.

# Mengecek data yang hilang atau tidak valid

missing_data = data.isnull().sum()

Kode di samping merupakan langkah awal yang penting dalam analisis data untuk memastikan kualitas dan integritas data sebelum melanjutkan ke tahap analisis lebih lanjut. Pemeriksaan ini membantu dalam mengidentifikasi masalah

(13)

print("Jumlah data yang hilang atau tidak valid:")

print(missing_data)

# Mengecek statistik deskriptif untuk lebih memahami kualitas data

descriptive_stats = data.describe() print("\nStatistik Deskriptif:") print(descriptive_stats)

# Mengecek korelasi antar atribut correlation_matrix = data.corr() print("\nMatriks Korelasi antar Atribut:")

print(correlation_matrix)

# Mengecek relevansi atribut dengan analisis domain

# Mengecek data yang mencurigakan (outliers)

# Mengecek tipe data atribut (jika ada perubahan yang diperlukan)

# Mengecek distribusi data untuk setiap atribut

sns.set(style="whitegrid") plt.figure(figsize=(12, 6))

sns.boxplot(data=data, orient="h") plt.title("Distribusi Data untuk Setiap Atribut")

plt.show()

potensial, memahami hubungan antar atribut, dan mempersiapkan data untuk proses analisis.

# Menampilkan lima baris pertama dari dataset 'data' menggunakan fungsi head()

data.head()

Kode di samping digunakan untuk menampilkan lima baris pertama dari dataset yang disebut 'data'.

Ini berguna untuk melihat contoh data awal dalam dataset dan memahami struktur data serta nilai- nilai awal pada atribut-atributnya. Dengan demikian, kita dapat memeriksa bagaimana data dimulai dan apa yang terkandung dalam dataset tersebut.

# Menampilkan lima baris terakhir dari dataset.

data.tail()

Kode di samping digunakan untuk menampilkan lima baris terakhir dari dataset. Hal ini berguna untuk melihat data-data terakhir dalam dataset Wholesale Customers. Hasil dari perintah ini akan menunjukkan bagian terakhir dari dataset, yang dapat berguna untuk melihat nilai-nilai terbaru atau akhir dalam dataset tersebut.

(14)

# Preprocessing data

# Disini saya melakukan normalisasi data dengan StandardScaler

scaler = StandardScaler() data_scaled =

scaler.fit_transform(data)

Kode di samping digunakan untuk menerapkan normalisasi ke dataset Wholesale Customers, dan hasilnya disimpan dalam data_scaled. Data yang telah dinormalisasi ini kemudian dapat digunakan dalam langkah-langkah analisis data berikutnya seperti K-Means dll.

# Memilih jumlah cluster yang optimal menggunakan metode elbow untuk K-means inertia = []

for i in range(1, 11):

kmeans = KMeans(n_clusters=i, random_state=0)

kmeans.fit(data_scaled)

inertia.append(kmeans.inertia_)

Kode di samping digunakan untuk mencari jumlah cluster yang optimal untuk algoritma K-Means menggunakan metode "elbow." Untuk melakukannya, dan saya melakukan iterasi dari 1 hingga 10 cluster.

# Analisis Data

print("Nama Kolom dalam Dataset:") print(data.columns)

print("\nJenis Data untuk Setiap Kolom:")

print(data.dtypes)

print("\nUkuran Dataset (Baris, Kolom):")

print(data.shape)

Kode di samping digunakan untuk memahami struktur dasar dari dataset, tipe data yang digunakan, serta ukuran dataset (jumlah baris dan kolom), yang merupakan langkah penting dalam analisis data awal.

# Membuat Pemodelan Regresi

X = data[['Fresh', 'Milk', 'Grocery', 'Frozen', 'Detergents_Paper',

'Delicassen']]

y = data['Delicassen']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = LinearRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test) mse = mean_squared_error(y_test, y_pred)

print(f"Mean Squared Error: {mse}")

Kode di samping adalah implementasi model regresi linear untuk memprediksi pembelian produk 'Delicassen' berdasarkan atribut-atribut lainnya dalam dataset Wholesale Customers.

Kami membagi data menjadi pelatihan dan pengujian, melatih model, dan mengukur performanya menggunakan Mean Squared Error (MSE). Semakin rendah nilai MSE, semakin baik performa model.

# Menampilkan plot elbow plt.figure(figsize=(8, 4)) plt.plot(range(1, 11), inertia, marker='o', linestyle='--') plt.xlabel('Jumlah Cluster') plt.ylabel('Inertia')

plt.title('Metode Elbow untuk

Menentukan Jumlah Cluster Optimal')

Kode di samping merupakan bagian dari analisis clustering dengan algoritma K-Means. Kode ini bertujuan untuk menentukan jumlah cluster optimal (k) menggunakan metode elbow.

(15)

plt.show()

# Memilih jumlah cluster berdasarkan elbow method

n_clusters = 6 # Sesuaikan dengan jumlah cluster yang optimal

Kode di samping digunakan untuk menentukan jumlah cluster dalam algoritma K-Means. Angka 6 adalah jumlah cluster yang dipilih berdasarkan metode "elbow."

# Melakukan K-means clustering

kmeans = KMeans(n_clusters=n_clusters, random_state=0)

data['Cluster K-means'] =

kmeans.fit_predict(data_scaled)

Kode di samping digunakan untuk membuat objek K-Means dengan jumlah cluster yang telah ditentukan. Melakukan proses clustering pada data yang telah dinormalisasi. Hasil clustering dimasukkan ke dalam kolom "Cluster K-means"

dalam dataset.

# Hierarchical clustering agglomerative =

AgglomerativeClustering(n_clusters=n_c lusters)

data['Cluster Hierarchical'] =

agglomerative.fit_predict(data_scaled)

Kode di samping mengimplementasikan pengelompokan hierarkis (hierarchical clustering) dengan algoritma Agglomerative Clustering pada dataset Wholesale Customers. Hasil pengelompokan disimpan dalam kolom Cluster Hierarchical. Proses ini mengelompokkan data ke dalam beberapa kelompok (cluster) berdasarkan kesamaan atribut. Jumlah cluster ditentukan oleh nilai n_clusters yang telah ditentukan sebelumnya.

# DBScan

dbscan = DBSCAN(eps=0.5, min_samples=5)

data['Cluster DBScan'] =

dbscan.fit_predict(data_scaled)

Kode di samping digunakan untuk menerapkan algoritma DBSCAN (Density-Based Spatial Clustering of Applications with Noise) untuk melakukan pengelompokan data. DBSCAN mengidentifikasi kluster berdasarkan kerapatan data. Parameter yang digunakan adalah eps (jarak maksimum antar data yang masih dianggap sebagai tetangga) dan min_samples (jumlah minimum data dalam suatu kluster).

# Evaluasi kualitas clustering dengan Silhouette Score

silhouette_kmeans =

silhouette_score(data_scaled, data['Cluster K-means']) silhouette_hierarchical = silhouette_score(data_scaled, data['Cluster Hierarchical']) silhouette_dbscan =

silhouette_score(data_scaled, data['Cluster DBScan'])

Kode di samping digunakan untuk menghitung Silhouette Score untuk tiga pengelompokan yang berbeda: K-Means, Hierarchical Clustering, dan DBScan. Hasilnya adalah tiga skor yang menggambarkan kualitas pengelompokan masing-masing algoritma. Dengan skor yang lebih tinggi, kita dapat menyimpulkan bahwa pengelompokan tersebut lebih baik dalam memisahkan data ke dalam kelompok-kelompok yang saling berdekatan dan terpisah dengan baik.

# Menampilkan hasil clustering print("Hasil K-means:")

print(data.groupby('Cluster K- means').mean())

Kode di samping untuk menampilkan hasil clustering menggunakan algoritma K-Means.

Hasilnya adalah kelompok-kelompok data yang diberi label sebagai Cluster K-means. Kode tersebut juga mencetak rata-rata dari setiap atribut

(16)

dalam setiap kelompok. Ini membantu kita memahami karakteristik setiap kelompok dalam analisis clustering.

# Menampilkan hasil Hierarchical print("Hasil Hierarchical:") print(data.groupby('Cluster Hierarchical').mean())

Kode di samping digunakan untuk menampilkan hasil dari pengelompokan menggunakan metode Hierarchical Clustering. Hasilnya adalah rata-rata atribut-atribut untuk setiap kelompok yang terbentuk melalui Hierarchical Clustering.

Dengan demikian, kita dapat melihat ciri-ciri rata- rata dari setiap kelompok yang terbentuk dalam analisis clustering ini.

# Menampilkan hasil DBScan print("Hasil DBScan:") print(data.groupby('Cluster DBScan').mean())

Kode di samping digunakan untuk menampilkan hasil dari algoritma DBScan pada dataset Wholesale Customers. Kita mengelompokkan data berdasarkan cluster yang dihasilkan oleh DBScan dan kemudian menampilkan rata-rata atribut untuk setiap cluster. Ini membantu kita memahami karakteristik setiap cluster dalam data dengan ringkas.

# Menampilkan nilai Silhouette Score print(f"Silhouette Score K-means:

{silhouette_kmeans}")

print(f"Silhouette Score Hierarchical:

{silhouette_hierarchical}") print(f"Silhouette Score DBScan:

{silhouette_dbscan}")

Kode di samping digunakan untuk menampilkan nilai Silhouette Score dari tiga algoritma pengelompokan yang berbeda: K-Means, Hierarchical (Agglomerative), dan DBScan.

Silhouette Score adalah metrik evaluasi yang mengukur seberapa baik pengelompokan telah berhasil. Semakin tinggi nilai Silhouette Score, semakin baik pengelompokan tersebut. Dengan demikian, kode ini membandingkan kualitas pengelompokan antara ketiga algoritma tersebut.

# Visualisasi data

# Misalnya, menggunakan PCA untuk mengurangi dimensi data menjadi 2D pca = PCA(n_components=2)

data_pca =

pca.fit_transform(data_scaled) data['PC1'] = data_pca[:, 0]

data['PC2'] = data_pca[:, 1]

Kode di samping menggunakan analisis komponen utama (PCA) untuk mengurangi dimensi data menjadi 2D. Hal ini berguna untuk visualisasi data dalam dua dimensi agar lebih mudah dipahami. Variabel PC1 dan PC2 adalah hasil dari reduksi dimensi ini, yang dapat digunakan untuk membuat plot data dalam ruang dua dimensi.

# Visualisasi hasil clustering sns.scatterplot(data=data, x='PC1', y='PC2', hue='Cluster K-means', palette='Set1')

plt.title('Hasil K-means Clustering') plt.show()

Kode di samping digunakan untuk memvisualisasikan hasil clustering menggunakan scatter plot. Data diproyeksikan ke dalam bidang 2D (PC1 dan PC2) dan diwarnai berdasarkan hasil clustering K-means. Plot ini membantu kita melihat bagaimana data terkelompok dalam ruang 2D. Warna yang berbeda menunjukkan kelompok yang berbeda. Dengan visualisasi ini, kita dapat

(17)

dengan cepat melihat pola dan struktur dalam data setelah proses clustering.

# Visualisasi hasil clustering Hierarchical menggunakan

seaborn.scatterplot

sns.scatterplot(data=data, x='PC1', y='PC2', hue='Cluster Hierarchical', palette='Set1')

plt.title('Hasil Hierarchical Clustering')

plt.show()

Kode di samping digunakan untuk visualisasi hasil clustering menggunakan metode Hierarchical (pengelompokan berhirarki) dengan bantuan Seaborn. Data ditampilkan dalam diagram pencar (scatter plot) dengan sumbu PC1 dan PC2. Warna digunakan untuk menunjukkan kelompok yang berbeda dalam hasil clustering Hierarchical. Diagram ini membantu memvisualisasikan bagaimana data terkelompok berdasarkan fitur-fitur yang ada.

# Visualisasi hasil clustering DBScan menggunakan seaborn.scatterplot

sns.scatterplot(data=data, x='PC1', y='PC2', hue='Cluster DBScan', palette='Set1')

plt.title('Hasil DBScan Clustering') plt.show()

Kode di samping digunakan untuk melakukan visualisasi hasil clustering dengan menggunakan DBScan pada data Wholesale Customers. Hasil clustering ditampilkan dalam grafik scatterplot yang menunjukkan titik data dalam dua dimensi (PC1 dan PC2). Setiap titik data diberi warna sesuai dengan cluster yang dihasilkan oleh DBScan, dan warna-warna ini diambil dari palet 'Set1'. Grafik ini membantu kita memahami bagaimana data terbagi ke dalam kelompok- kelompok berdasarkan algoritma clustering DBScan.

# Pisahkan fitur (X)

X = data[['Fresh', 'Milk', 'Grocery', 'Frozen', 'Detergents_Paper',

'Delicassen']]

# Standarisasi fitur scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

# Inisialisasi model-model pengelompokan

kmeans = KMeans(n_clusters=3) agglomerative =

AgglomerativeClustering(n_clusters=3) dbscan = DBSCAN(eps=0.5,

min_samples=5)

# Melakukan pengelompokan kmeans_labels =

kmeans.fit_predict(X_scaled)

Kode di samping melakukan pengelompokan data menjadi tiga kelompok menggunakan tiga metode clustering berbeda: K-Means, Agglomerative Clustering, dan DBSCAN. Hasil pengelompokan ditampilkan dalam jumlah data yang masuk ke dalam setiap kelompok untuk masing-masing metode. Ini membantu dalam menganalisis bagaimana data dibagi menjadi kelompok- kelompok berdasarkan karakteristiknya.

(18)

agglomerative_labels =

agglomerative.fit_predict(X_scaled) dbscan_labels =

dbscan.fit_predict(X_scaled)

# Menambahkan hasil pengelompokan ke dalam dataset

data['KMeans_Labels'] = kmeans_labels data['Agglomerative_Labels'] =

agglomerative_labels

data['DBSCAN_Labels'] = dbscan_labels

# Cetak hasil pengelompokan

print("Hasil Pengelompokan menggunakan K-Means:")

print(data['KMeans_Labels'].value_coun ts())

print("\nHasil Pengelompokan menggunakan Agglomerative Clustering:")

print(data['Agglomerative_Labels'].val ue_counts())

print("\nHasil Pengelompokan menggunakan DBSCAN:")

print(data['DBSCAN_Labels'].value_coun ts())

(19)

1.8. Kesimpulan

Kesimpulan dari analisis dan hasil yang terjadi, dapat disimpulkan bahwa semua yang terjadi sebagai berikut ini:

• Jumlah data yang hilang atau tidak valid: Tidak ada data yang hilang atau tidak valid dalam dataset, seperti yang ditunjukkan oleh "Jumlah data yang hilang atau tidak valid." Semua kolom memiliki jumlah data yang sama, yang menunjukkan bahwa tidak ada data yang hilang.

• Statistik Deskriptif: Statistik deskriptif menunjukkan bahwa semua atribut memiliki nilai min dan maksimum yang wajar, dan tidak ada nilai yang ekstrem.

Jumlah minimum yang wajar (misalnya, Fresh dan Milk memiliki nilai minimum yang lebih besar dari 0) menunjukkan bahwa data tidak mengandung nilai-nilai yang tidak masuk akal.

• Matriks Korelasi: Matriks korelasi menunjukkan hubungan antara atribut. Tidak ada informasi yang mengindikasikan bahwa atribut tertentu tidak relevan, karena setiap atribut memiliki tingkat korelasi dengan atribut lain.

• K-Means menghasilkan lima kelompok (Cluster 0, 1, 2, 3, 4, dan 5) dengan karakteristik yang berbeda.

• Hierarchical Clustering juga menghasilkan lima kelompok dengan karakteristik yang berbeda.

• DBSCAN mengidentifikasi beberapa kelompok (Cluster -1, 0, 1, 2, 3, 4, 5, 6, 7) dan juga mengidentifikasi data sebagai "noise" dalam Cluster -1.

• K-Means dan Hierarchical menghasilkan kelompok yang serupa, sedangkan DBSCAN memberikan hasil yang lebih fleksibel dengan kemampuan untuk mengidentifikasi noise.

Secara keseluruhan Dataset ini dalam kondisi baik dan tidak memerlukan pengolahan lanjutan untuk mengatasi masalah data yang hilang atau tidak valid.

Pemilihan algoritma clustering tergantung pada tujuan analisis. K-Means dan Hierarchical cocok untuk pemisahan data menjadi kelompok, sementara DBSCAN memberikan fleksibilitas dalam mengidentifikasi noise. Analisis ini dilakukan untuk memahami pola pembelian pelanggan dan mengambil keputusan strategis dalam bisnis, seperti pengelolaan persediaan produk atau pengembangan strategi pemasaran.

Referensi

Dokumen terkait

Berdasarkan hasil analisis data, maka dapat diambil kesimpulan Berdasarkan hasil analisis data, maka dapat diambil kesimpulan sebagai berikut. 1) Terdapat perbedaan

Berdasarkan hasil penelitian dan analisis data, dapat diambil kesimpulan berdasarkan perumusan masalah sebagai berikut :.. Berdasarkan hasil analisis regresi dapat disimpulkan

mengetahui: (1) bagaimana hasil analisis butir soal UAS UT menggunakan teori tes modern dengan model satu parameter (model Rasch), (2) bagaimana perbandingan jumlah soal valid

Berdasarkan hasil penelitian dan analisis data yang terdapat dalam pembahasan, maka dapat disimpulkan sebagai berikut: (1) Validitas “Modul Automotive

0aporan riset merupakan rangkuman hasil, kesimpulan dan rekomendasi penelitian yang diserahkan kepada pihak manajemen untuk pengambilan keputusan. 0aporan riset harus jelas,

Ikatan kovalen koordinasi pada Struktur Lewis molekul H3PO4 berikut ditunjukkan oleh nomor …... Di antara molekul-molekul berikut yang tidak memenuhi kaidah oktet adalah

Kelemahan Website Berdasarkan pengalaman sebagai pengguna serta analisis terhadap Website "Prodi Sistem Informasi Undiksha", dapat disimpulkan bahwa kelemahan dari website ini adalah

KESIMPULAN DAN SARAN Berdasarkan hasil pengolahan data dan analisis data yang telah dilakukan, maka dapat disimpulkan bahwa Penentuan selang waktu penggantian komponen dengan