Fundamental �Data Analyst
Minggu Ke - 7
Pokok Bahasan
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:
Association rule sangat berguna dalam berbagai bidang yang melibatkan analisis data besar untuk menemukan pola tersembunyi yang dapat mendukung pengambilan keputusan bisnis.
Peran Association Rule dalam Data Mining
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:
2. Membuat Frequent Itemsets:
3. Membuat Association Rules:
4. Evaluasi dan Interpretasi:
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 :
CRISP-DM : �1. Business Understanding
Langkah pertama ini berfokus pada pemahaman tujuan bisnis dan persyaratan proyek. Ini melibatkan:
Tujuan Bisnis (Study Kasus: Data Penjualan Retail):
CRISP-DM : �2. Data Understanding
Langkah kedua melibatkan pengumpulan data dan familiarisasi dengan data yang tersedia. Hal Ini mencakup:
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/
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
2
3
4
5
Apriori, association_rules & TransactionEncoder
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.
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).
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
Memuat Dataset
# Muat data dari file excel
data = pd.read_excel('data_retail2.xlsx')
# Tampilkan informasi dasar dari dataset
data.info()
CRISP-DM : �3. Data Preparation
Langkah ketiga ini melibatkan pembersihan dan transformasi data agar siap untuk pemodelan. Hal Ini termasuk:
CRISP-DM : �3. Data Preparation
# 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())
CRISP-DM : �3. Data Preparation
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())
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’]
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)
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:
CRISP-DM :�4. Modeling
Langkah keempat adalah membangun model menggunakan teknik data mining. Hal Ini mencakup:
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
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 :
CRISP-DM :�5. Evaluasi 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
CRISP-DM�6. Deployment
Langkah terakhir adalah mengimplementasikan model ke dalam lingkungan operasional. Hal Ini mencakup:
Dalam Perkuliahan ini tidak membahas tahap Deployment