1 of 21

Fundamental �Data Analyst

Minggu Ke - 7

2 of 21

Pokok Bahasan

  1. Unsupervised Learning (Association Rule )
  2. CRISP-DM: Model Apriori
  3. Evaluasi:
  4. Antecedents (A)
  5. Consequents (B)
  6. Support
  7. Confidence
  8. Support dan Confidence
  9. Lift
  10. Leverage
  11. Conviction
  12. Leverage dan Conviction

3 of 21

Association Rule

Association rule dalam data mining merupakan teknik untuk menemukan hubungan atau keterkaitan antar item dalam data transaksi. Hal Ini sering digunakan dalam analisis keranjang belanja (data retail) untuk menemukan pola pembelian pelanggan, misalnya, hubungan antara pembelian roti dan mentega dan lain sebagainya.

Terdapat beberapa komponen pada Association rule diantaranya:

  • Itemset: Kumpulan item yang muncul bersama-sama dalam satu transaksi.
  • Support: Ukuran seberapa sering itemset muncul dalam basis data.
  • Confidence: Ukuran seberapa sering item B muncul dalam transaksi yang mengandung item A
  • Lift: Ukuran seberapa besar peningkatan kemungkinan B muncul dalam transaksi yang mengandung A dibandingkan dengan jika B muncul secara acak.

Association rule sangat berguna dalam berbagai bidang yang melibatkan analisis data besar untuk menemukan pola tersembunyi yang dapat mendukung pengambilan keputusan bisnis.

4 of 21

Peran Association Rule dalam Data Mining

  • Peningkatan Penjualan: Menemukan pola pembelian membantu toko atau bisnis menata produk sehingga pelanggan cenderung membeli lebih banyak barang.
  • Manajemen Persediaan: Memungkinkan pengelola toko untuk mengetahui produk mana yang sering dibeli bersama sehingga dapat mengatur persediaan dengan lebih efisien.
  • Strategi Pemasaran: Informasi tentang kebiasaan belanja dapat digunakan untuk membuat promosi yang lebih efektif, seperti memberikan diskon pada barang yang sering dibeli bersama.
  • Rekomendasi Produk: Membantu dalam sistem rekomendasi, seperti yang digunakan oleh Amazon atau Netflix, untuk menyarankan produk atau konten berdasarkan perilaku belanja atau menonton sebelumnya.
  • Peningkatan Layanan Pelanggan: Dengan memahami kebutuhan dan preferensi pelanggan, perusahaan dapat meningkatkan layanan dan kepuasan pelanggan

5 of 21

Tahapan Implementasi Association Rule pada Data Mining

Implementasi association rule dalam Python bisa dilakukan dengan menggunakan berbagai pustaka data mining seperti mlxtend. Berikut adalah tahapan implementasi association rule dalam Python:

1. Persiapan Data:

  • Memuat dan membersihkan data.
  • Mengubah data transaksi menjadi format yang sesuai untuk analisis association rule.

2. Membuat Frequent Itemsets:

  • Menggunakan algoritma seperti Apriori untuk menemukan itemset yang sering muncul.

3. Membuat Association Rules:

  • Menghasilkan aturan asosiasi dari itemset yang sering muncul.

4. Evaluasi dan Interpretasi:

  • Mengevaluasi aturan berdasarkan metrik seperti support, confidence, lift dan lain-lain.
  • Menginterpretasikan hasil untuk tindakan bisnis.

6 of 21

Implementasi Association Rule dengan Python

Studi Kasus : Data Penjualan Retail

Dataset : https://s.id/DatasetFDA

Total Variable : 23 Variable/Columns

Bagi yang menggunakan text editor offline seperti Visual Studio Code maka perlu menambahkan library berikut:

Buka CMD tambahkan Library :

  1. Mlxtend 🡪 pip install mlxtend
  2. Openpyxl 🡪 pip install openpyxl

7 of 21

CRISP-DM : �1. Business Understanding

Langkah pertama ini berfokus pada pemahaman tujuan bisnis dan persyaratan proyek. Ini melibatkan:

  • Menentukan tujuan bisnis dan kebutuhan yang spesifik.
  • Mengidentifikasi masalah bisnis yang ingin diselesaikan.
  • Menyusun rencana proyek, termasuk sasaran, anggaran, dan waktu.

Tujuan Bisnis (Study Kasus: Data Penjualan Retail):

  1. Menemukan pola pembelian dalam menata produk sehingga pelanggan cenderung membeli lebih banyak barang.

8 of 21

CRISP-DM : �2. Data Understanding

Langkah kedua melibatkan pengumpulan data dan familiarisasi dengan data yang tersedia. Hal Ini mencakup:

  • Mengumpulkan data awal yang diperlukan untuk analisis.
  • Menjelajahi data untuk memahami strukturnya, kualitas, dan pola yang ada.
  • Mengidentifikasi masalah kualitas data seperti nilai yang hilang atau data yang tidak konsisten.

Studi Kasus : Data Penjualan Retail

Dataset : https://s.id/DatasetFDA

Deskripsi : dataset Penjualan Retail memiliki 23 fitur, diantaranya seperti InvoiceNo, InvoiceDate, Branch_SPLR dan seterusnya (check informasi dasar dari dataset pada pengolahan data)

*Sumber Dataset: https://www.kaggle.com/

9 of 21

Import Library yang Diperlukan

import pandas as pd

import numpy as np

import datetime

from mlxtend.frequent_patterns import apriori, association_rules

from mlxtend.preprocessing import TransactionEncoder

Keterangan Library:

  1. Manipulasi dan analisis data tabular dimjuat dalam bentuk dataframe
  2. Manipulasi data dalam bentuk array
  3. Untuk konversi tanggal dan waktu
  4. mengimpor dua fungsi utama dari pustaka mlxtend, yaitu apriori dan association_rules
  5. mengimpor kelas TransactionEncoder dari modul preprocessing dalam pustaka mlxtend

1

2

3

4

5

10 of 21

Apriori, association_rules & TransactionEncoder

  • Apriori

digunakan untuk mencari itemset yang sering muncul dalam suatu dataset, mengidentifikasi kumpulan item yang sering muncul bersama dalam transaksi. Algoritma ini bekerja dengan memperluas itemset satu per satu dan menghitung frekuensi itemset tersebut dalam dataset transaksi, kemudian menyaring itemset yang tidak memenuhi ambang batas minimum support.

  • association_rules

digunakan untuk menghasilkan aturan asosiasi dari itemset yang sering muncul yang dihasilkan oleh algoritma Apriori dan menghitung metrik seperti support, confidence, dan lift untuk setiap aturan yang dihasilkan, dan menyaring aturan berdasarkan ambang batas minimum yang diberikan (misalnya, minimum confidence).

  • TransactionEncoder

alat untuk mengubah data transaksi dalam bentuk daftar item ke dalam format yang dapat dianalisis oleh algoritma machine learning. Fungsi utamanya adalah: fit: mempelajari item unik dalam data transaksi.transform: mengubah data transaksi menjadi matriks biner, di mana setiap kolom mewakili sebuah item dan setiap baris mewakili sebuah transaksi. Nilai dalam matriks adalah 1 jika item tersebut ada dalam transaksi dan 0 jika tidak ada. fit_transform: Kombinasi dari fit dan transform dalam satu langkah

11 of 21

Memuat Dataset

# Muat data dari file excel

data = pd.read_excel('data_retail2.xlsx')

# Tampilkan informasi dasar dari dataset

data.info()

12 of 21

CRISP-DM : �3. Data Preparation

Langkah ketiga ini melibatkan pembersihan dan transformasi data agar siap untuk pemodelan. Hal Ini termasuk:

  • Konversi Tanggal Fitur
  • Menghapus Spasi (awal dan akhir)
  • menghapus semua baris yang memiliki nilai NULL pada kolom InvoiceNo
  • Menghapus variabel dengan awalan huruf (”C” pada InvoiceNo)
  • Data Transformation (Filtering, dan Grouping)
  • Menampilkan subset dataset
  • encoding -> mengubah data string menjadi angka
  • Mengelompokkan item yang sering muncul (dibeli)

13 of 21

CRISP-DM : �3. Data Preparation

  1. Memeriksa apakah ada nilai dalam dataset yang “Kosong” atau “NaN”

# Memeriksa apakah ada nilai dalam dataset yang "kosong" atau "NaN"

print(data.isnull().values.any())

Apabila ingin melakukan pemeriksaan data isnull perkolom gunakan script berikut:

print(data.isnull().sum())

14 of 21

CRISP-DM : �3. Data Preparation

  1. Mengisi Nilai yang Hlang Missing Values

Dalam kasus ini akan dilakukan pengisian data yang kosong untuk kolom dengan type numeric saja dan akan diisi dengan nilai rata-rata yang ada pada variable tersebut menggunakan script berikut

data = data.fillna(data.mean(numeric_only=True))

print(data.isnull().sum())

15 of 21

CRISP-DM : �3. Data Preparation (Lanjutan)

3. Memilih Fitur (Feature) dan Target

Seperti pada pertemuan sebelumnya Dari total 81 variable yang ada, dalam kasus ini akan menggunakan beberapa variable saja yang ditentukan untuk fitur dan target:

Fitur : ‘OverallQual', 'GrLivArea', 'GarageCars', 'GarageArea', 'TotalBsmtSF', 'FullBath', 'YearBuilt'

Target : SalePrice

Script:

# Memilih fitur (features) dan target

features = ['OverallQual', 'GrLivArea', 'GarageCars','GarageArea', 'TotalBsmtSF', 'FullBath', 'YearBuilt’]

X = data[features]

y = data['SalePrice’]

16 of 21

CRISP-DM : �3. Data Preparation (Lanjutan)

4. Standarisasi fitur.

Dalam kasus ini akan menggunakan StandardScaler() dalam konteks clustering adalah untuk menstandarisasi fitur-fitur dalam dataset sebelum melakukan clustering. Standardisasi sangat penting dalam clustering karena banyak algoritma clustering (seperti K-Means) sensitif terhadap skala fitur. Dengan menggunakan StandardScaler, Anda memastikan bahwa semua fitur memiliki skala yang sama sebelum melakukan clustering, yang dapat meningkatkan akurasi dan kinerja dari algoritma clustering

# Standarisasi fitur [lihat materi minggu ke-1]

scaler = StandardScaler()

X_scaled = scaler.fit_transform(X)

17 of 21

CRISP-DM : �3. Data Preparation (Lanjutan)

5. Membagi dataset menjadi data pelatihan dan pengujian.

# Bagi dataset menjadi data latih dan data uji

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

print("Shape of X_train:", X_train.shape)

print("Shape of X_test:", X_test.shape)

print("Shape of Y_train:", y_train.shape)

print("Shape of Y_test:", y_test.shape)

Keterangan:

  1. X_train 🡪 random state dibuat dalam 1 baris script.
  2. Dataset dibagi menjadi 20% Test dan 70% Train
  3. Nilai random state memungkinkan untuk dirubah tergantu metode acak yang akan digunakan, contoh RS=0

18 of 21

CRISP-DM :�4. Modeling

Langkah keempat adalah membangun model menggunakan teknik data mining. Hal Ini mencakup:

  • Memilih teknik pemodelan yang sesuai dengan masalah bisnis dan jenis data.
  • Melatih model menggunakan data pelatihan.
  • Mengoptimalkan parameter model untuk meningkatkan kinerja.

Dalam tahap pembelajaran ini algoritma yang akan digunakan adalah Association Rules

rules1 = association_rules(frequent_itemsets, metric='lift', min_threshold=1 )

rules1.head()

Keterangan:

# gunakan algoritma model asosiasi berdasarkan subset data frequent itemsets

# dengan menggunakan metrik “lift”

# dan ambang batas minimum sebesar 1.

# Hasilnya akan disimpan dalam variabel rules1

19 of 21

CRISP-DM :�5. Evaluasi Model

Langkah kelima melibatkan evaluasi model untuk memastikan model memenuhi tujuan bisnis dan persyaratan proyek, Adapun Evaluasi model Association Rule mencakup :

  • Antecedents (A)
  • Consequents (B)
  • Support
  • Confidence
  • Support dan Confidence
  • Lift
  • Leverage
  • Conviction
  • Leverage dan Conviction

20 of 21

CRISP-DM :�5. Evaluasi Model

  1. Tabel hasil Model

result1 = rules1[(rules1['lift'] >= 1) & (rules1['confidence']) >= 0.8]

apriori_result = result1.sort_values(by='confidence', ascending=False)

apriori_result.head(20)

Catatan:

Interpretasi Hasil Evaluasi Model dijelaskan pada Minggu Ke 9

Full Script: https://drive.google.com/file/d/1XcGCAUtBCcLxKv3y8yVAOe0fDyN0cmGm/view?usp=sharing

21 of 21

CRISP-DM�6. Deployment

Langkah terakhir adalah mengimplementasikan model ke dalam lingkungan operasional. Hal Ini mencakup:

  • Merencanakan dan menjalankan implementasi model dalam sistem produksi.
  • Memantau dan memelihara model untuk memastikan kinerjanya tetap optimal.
  • Mengkomunikasikan hasil dan manfaat model kepada pemangku kepentingan.

Dalam Perkuliahan ini tidak membahas tahap Deployment