Skip to content

Bangkah/dicoding-ml-submission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proyek Machine Learning: Bank Transaction Fraud Detection

Deskripsi

Proyek submission kelas Belajar Machine Learning untuk Pemula di Dicoding. Membangun model K-Means Clustering dan Decision Tree Classification pada dataset Bank Transaction untuk mendeteksi pola transaksi.

Author

Muhammad Dhiyaul Atha


Struktur File

├── [Clustering] Submission Akhir BMLP_Muhammad Dhiyaul Atha.ipynb
├── [Klasifikasi] Submission Akhir BMLP_Muhammad Dhiyaul Atha.ipynb
├── bank_transactions_data_edited.csv
├── model_clustering
├── PCA_model_clustering.h5
├── data_clustering.csv
├── data_clustering_inverse.csv
├── decision_tree_model.h5
├── explore_random_forest_classification
├── tuning_classification
└── README.md

Dataset

Info Detail
Nama Bank Transactions Data (Edited)
Sumber Dicoding (modifikasi dari Kaggle)
Jumlah Data 2537 baris
Jumlah Kolom 16 kolom

Kolom Dataset

Kolom Tipe Keterangan
TransactionID string ID transaksi (di-drop)
AccountID string ID akun (di-drop)
TransactionAmount float Jumlah transaksi
TransactionDate string Tanggal transaksi (di-drop)
TransactionType string Jenis transaksi (Debit/Credit)
Location string Lokasi transaksi
DeviceID string ID perangkat (di-drop)
IP Address string Alamat IP (di-drop)
MerchantID string ID merchant (di-drop)
Channel string Platform (ATM/Online)
CustomerAge float Usia pelanggan
CustomerOccupation string Pekerjaan pelanggan
TransactionDuration float Durasi transaksi (detik)
LoginAttempts float Percobaan login
AccountBalance float Saldo rekening
PreviousTransactionDate string Tanggal transaksi sebelumnya (di-drop)

Kriteria Submission

Kriteria 1: EDA

  • head(), info(), describe()
  • Matriks korelasi (heatmap)
  • Histogram semua kolom (numerik & kategorikal)
  • Visualisasi tanpa label overlap

Kriteria 2: Preprocessing

  • isnull().sum() dan duplicated().sum()
  • dropna() dan drop_duplicates()
  • Drop kolom ID, Address, Date
  • LabelEncoder() untuk fitur kategorikal
  • Handling Outlier (metode IQR drop)
  • StandardScaler() untuk fitur numerik
  • Binning data (CustomerAge & TransactionAmount)

Kriteria 3: Clustering

  • Elbow Method (KElbowVisualizer())
  • K-Means Clustering (sklearn.cluster.KMeans())
  • joblib.dump()model_clustering
  • Silhouette Score
  • Visualisasi cluster (PCA 2D)
  • PCA Model → PCA_model_clustering.h5

Kriteria 4: Interpretasi Clustering

  • Analisis deskriptif (mean, min, max)
  • Karakteristik tiap cluster (agregasi)
  • inverse_transform() untuk data asli
  • Analisis numerik & kategorikal setelah inverse
  • Ekspor data_clustering.csv + kolom Target
  • Ekspor data_clustering_inverse.csv

Kriteria 5: Klasifikasi

  • train_test_split() (80:20)
  • Decision Tree → decision_tree_model.h5
  • Random Forest → explore_random_forest_classification
  • Evaluasi: Accuracy, Precision, Recall, F1-Score
  • Hyperparameter Tuning (GridSearchCV) → tuning_classification

Library

Library Kegunaan
pandas Manipulasi data
numpy Operasi numerik
matplotlib Visualisasi
seaborn Visualisasi statistik
scikit-learn Machine Learning
yellowbrick Visualisasi ML (Elbow, Silhouette)
joblib Menyimpan model

Cara Menjalankan

# 1. Install dependencies
pip install pandas numpy matplotlib seaborn scikit-learn yellowbrick joblib

# 2. Jalankan notebook Clustering TERLEBIH DAHULU
jupyter notebook "[Clustering] Submission Akhir BMLP_Muhammad Dhiyaul Atha.ipynb"

# 3. Setelah selesai, jalankan notebook Klasifikasi
jupyter notebook "[Klasifikasi] Submission Akhir BMLP_Muhammad Dhiyaul Atha.ipynb"

Hasil Model

Clustering

  • Algoritma: K-Means
  • Evaluasi: Silhouette Score
  • Perbandingan: K-Means vs K-Means + PCA

Klasifikasi

Model Keterangan
Decision Tree Model utama
Random Forest Model eksplorasi tambahan
Tuned Decision Tree Setelah hyperparameter tuning

File Output

File Keterangan
model_clustering Model K-Means
PCA_model_clustering.h5 Model K-Means + PCA
data_clustering.csv Data + kolom Target
data_clustering_inverse.csv Data inverse + Target
decision_tree_model.h5 Model Decision Tree
explore_random_forest_classification Model Random Forest
tuning_classification Model setelah tuning

Lisensi

Proyek ini dibuat untuk submission di Dicoding Indonesia.

About

Proyek submission kelas Belajar Machine Learning untuk Pemula di Dicoding. Membangun model K-Means Clustering dan Decision Tree Classification pada dataset Bank Transaction untuk mendeteksi pola transaksi.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors