Skip to content
 
 

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Credit Card Fraud Detection - Group 12 (Credit Sentinels)

Project: Credit Card Fraud Detection
Lab / Course: HCMUT EE ML & IoT Lab / ML Course
Presentation Slide:
Mentor: Nguyễn Trường Thịnh.
Authors: Đỗ Hồng Phúc (2312672), Phan Bá Thanh (2353084), Trần Phan Đăng Khôi (2352626), Lê Huy Hoàng (2211079), Lâm Thanh Phương (2352951).

Abstract

Bài báo cáo của nhóm trình bày quá trình lựa chọn, huấn luyện và đánh giá nhiều mô hình học máy để phát hiện giao dịch gian lận bằng thẻ tín dụng (Credit Card Fraud Detection). Đề tài tập trung vào:

  • Xử lý dữ liệu mất cân bằng bằng SMOTE.
  • Tiền xử lý và chuẩn hóa đặc trưng (StandardScaler cho TimeAmount; các đặc trưng V1–V28 được giả định đã là các thành phần PCA).
  • So sánh các mô hình từ tuyến tính (Logistic Regression), mô hình cây quyết định (Decision Tree), phương pháp KNN, SVM tới ensemble (Random Forest và Voting Classifier).

Keywords: credit card fraud, imbalanced data, SMOTE, Random Forest, Voting Classifier, SVM, KNN, Logistic Regression, feature importance.
Tags: fraud-detection, imbalanced-learning, SMOTE, random-forest, ensemble, voting-classifier, scikit-learn.

Overview

Bài toán: Phát hiện giao dịch gian lận trên dữ liệu lịch sử giao dịch thẻ tín dụng là một bài toán phân lớp nhị phân (0 = Normal, 1 = Fraud) với tỉ lệ lớp cực kỳ mất cân bằng. Bộ dữ liệu chuẩn sử dụng trong nghiên cứu có 284,807 mẫu, 30 đặc trưng (gồm Time, Amount, và V1–V28), trong đó chỉ ~0.17% là giao dịch gian lận. Dữ liệu không chứa giá trị khuyết.

Thực tiễn: Ở các giao dịch ngân hàng, phát hiện gian lận cần đạt độ nhạy cao (phát hiện nhiều fraud) đồng thời giữ tỷ lệ cảnh báo giả (false positives) ở mức chấp nhận được để hạn chế ảnh hưởng tới khách hàng thật. Vì vậy ta tối ưu không chỉ accuracy mà tập trung vào precision/recall, F1 và ROC-AUC, cùng các business metrics như Fraud Detection Rate và False Alarm Rate.

Project goals

  1. Xử lý dữ liệu mất cân bằng để mô hình không bỏ sót lớp thiểu số (fraud).
  2. So sánh hiệu năng của nhiều mô hình (tuyến tính, cây quyết định, KNN, SVM, Random Forest) trên các metric phù hợp với bài toán mất cân bằng.
  3. Xây dựng một ensemble (Voting Classifier) để khai thác sức mạnh phối hợp từ các mô hình khác nhau và cải thiện hiệu năng thực tế.
  4. Lựa chọn và báo cáo các feature quan trọng (feature importance) để hiểu đặc trưng đóng góp vào quyết định.
  5. Đánh giá business impact (true positives, false positives, false negatives) để phản ánh khả năng áp dụng thực tế.

Data source

Bộ dữ liệu sử dụng là bản chuẩn phổ biến cho bài toán phát hiện gian lận thẻ tín dụng (Credit Card Fraud dataset - chứa Time, Amount, V1–V28, Class). Dữ liệu đã được kiểm tra không có giá trị thiếu và có phân phối lớp cực kỳ lệch (≈0.17% fraud).

Kaggle: Credit Card Fraud Detection

Algorithms (thiết kế và cấu hình chính)

Tất cả mô hình được huấn luyện trên dữ liệu đã được chuẩn hóa (StandardScaler cho TimeAmount) và xử lý mất cân bằng bằng SMOTE trên tập huấn luyện, trừ khi ghi chú khác. Dưới đây là tóm tắt các thuật toán, cấu hình nổi bật và mục đích sử dụng.

1. Preprocessing

  • StandardScaler cho TimeAmount.
  • V1–V28 được giữ nguyên (đã là thành phần PCA).
  • SMOTE để oversample lớp fraud tới tỉ lệ cân bằng (50:50) trong training set.

2. Logistic Regression

  • Solver: saga, penalty l2, C=1.0, max_iter=5000.
  • Vai trò: baseline có khả năng diễn giải hệ số, xem feature coefficients để hiểu vai trò.

3. Decision Tree

  • max_depth=10, min_samples_split=20, min_samples_leaf=10, class_weight='balanced'.
  • Vai trò: mô hình dễ giải thích, kiểm tra mối quan hệ phi tuyến tính đơn giản.

4. Support Vector Machine (SVM)

  • Pipeline: StandardScalerSMOTESVC(kernel='rbf', probability=True).
  • Grid search trên Cgamma (ví dụ C ∈ {0.1,1,10}, gamma ∈ {0.1,0.01,0.001}), tối ưu thu được C=0.1, gamma=0.001.
  • Vai trò: nắm bắt ranh giới phi tuyến tính phức tạp; cần cân nhắc chi phí tính toán.

5. K-Nearest Neighbors (KNN)

  • n_neighbors=5, weights='distance', metric='euclidean', n_jobs=-1.
  • Vai trò: baseline non-parametric; thể hiện hiệu năng tốt với F1 cao hơn Logistic/DT.

6. Random Forest

  • n_estimators=100, max_depth=15, min_samples_split=10, min_samples_leaf=5, class_weight='balanced', oob_score=True, n_jobs=-1.
  • Vai trò: mô hình ensemble mạnh, giảm variance, robust với noise; đạt hiệu năng xuất sắc.

7. Voting Classifier (Ensemble)

  • Kết hợp: LogisticRegression, KNN, RandomForest (cả hard voting và soft voting).
  • Kết quả soft voting cho thấy cải thiện so với Random Forest đơn lẻ.

Results & Metrics

Kết quả cuối cùng trên tập test

Model Precision Recall F1-Score
Logistic Regression 0.0585 0.8980 0.1099
Decision Tree 0.1280 0.8265 0.2216
KNN (K=5) 0.5059 0.8776 0.6418
SVM 0.05 0.91 0.11
Random Forest 0.7069 0.8367 0.7664
Soft Voting 0.7000 0.8876 0.7884

Đánh giá sơ bộ khi áp dụng vào thực tế (Random Forest)

Metric Value
True Positives (frauds caught) 82
False Negatives (missed fraud) 16
False Positives (false alarms) 34
True Negatives 56,830
Fraud Detection Rate 83.7%
False Alarm Rate ~29–30%

Conclusion

  • Ensemble > Single models: Voting Classifier (soft voting) đạt hiệu năng tổng hợp tốt nhất trên bộ test.
  • Random Forest mạnh mẽ: Trong các mô hình đơn lẻ, Random Forest đạt F1 cao và ROC-AUC lớn.
  • SMOTE cần thận trọng: SMOTE cải thiện recall cho lớp thiểu số nhưng cần validate kỹ để tránh overfitting.
  • Feature importance: V14V4 là hai đặc trưng quan trọng nhất cho việc dự đoán fraud.

How to run

  1. Clone repository:
    git clone https://github.com/Shootingstar2608/Project-HCMUT-EE-Lab.git
    cd Project-HCMUT-EE-Lab/model
  2. Cài đặt dependencies:
    pip install -r requirements.txt
  3. Tải dataset gốc.
  4. Thay đổi đường dẫn của hàm pd.read_csv(your_path) thành đường dẫn tới vị trí dataset đã tải.
  5. Chạy từng cell trong notebook để huấn luyện và đánh giá:
    jupyter notebook project-cuoi-khoa.ipynb
  6. Kết quả (metrics, plots) sẽ được cho ra trực tiếp ở mỗi cell.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages