Tentang Model

Tentang Penelitian

Optimasi XGBoost untuk Deteksi URL Phishing Menggunakan Bayesian Optimization

Phishing merupakan salah satu ancaman keamanan siber yang memanfaatkan URL palsu untuk mencuri informasi pengguna. Penelitian ini mengembangkan model XGBoost yang dioptimasi menggunakan Bayesian Optimization (Optuna) untuk mendeteksi URL phishing berdasarkan karakteristik URL dan meningkatkan performa klasifikasi.

Tujuan Penelitian

Mengoptimasi performa model XGBoost dalam mendeteksi URL phishing menggunakan Bayesian Optimization (Optuna) sehingga diperoleh kombinasi hyperparameter yang lebih optimal dan menghasilkan kinerja klasifikasi yang lebih baik dibandingkan konfigurasi default.

Ringkasan Penelitian

Sekilas Hasil Penelitian dalam Angka

497.159

Total Data URL (Final)

42

Fitur

40

Trial Optimasi Optuna

90,24%

F1-Score Akhir (Sesudah Optimasi)

Dataset Penelitian

Sumber, Pembersihan, dan Pembagian Data

Dua dataset sumber digabungkan: satu berisi URL phishing, satu berisi campuran URL legitimate & phishing, kemudian dibersihkan agar bebas dari nilai kosong, konflik label, dan duplikat.

Sumber Dataset
Dataset Jumlah Baris Label Asli
phishing.csv 54.807 Phishing
urldataset.csv 450.176 Legitimate, Phishing
Tahapan Pembersihan Data
Tahap Jumlah Data
Gabungan awal 2 dataset 504.983
Setelah hapus nilai kosong & konflik label (3 URL) 504.977
Setelah hapus duplikat (Dataset Final) 497.159
Distribusi Label Final
Legitimate (0) — 345.725 data
Phishing (1) — 151.434 data
Data Splitting (70/15/15)
  • Train348.011 (70%)
  • Validation74.574 (15%)
  • Test74.574 (15%)

Pembagian dilakukan secara stratified agar proporsi kelas tetap terjaga di setiap subset.

Penanganan Imbalance (SMOTE)
Legitimate Phishing
Sebelum SMOTE 242.007 106.004
Sesudah SMOTE 242.007 242.007

SMOTE diterapkan hanya pada data latih agar tidak terjadi kebocoran data ke validation/test set.

Fitur URL yang Digunakan

42 Fitur dari Struktur URL

Seluruh fitur diekstraksi langsung dari struktur URL ternormalisasi , lalu disaring melalui proses seleksi fitur menjadi 42 fitur yang paling berkontribusi. Fitur dikelompokkan menjadi lima kategori berikut.

A. Panjang & Struktur URL 9 fitur
url_length, hostname_length, domain_length, tld_length, path_length, query_length, path_depth, token_count, longest_token_length
B. Karakter & Simbol 10 fitur
at_count, dot_count, slash_count, double_slash_count, question_mark_count, equal_count, special_char_count, repeated_char_group_count, longest_digit_run, digit_letter_switches
C. Rasio & Komposisi 8 fitur
hostname_digit_ratio, hostname_digit_count, host_to_url_ratio, path_to_url_ratio, digit_ratio, hyphen_ratio, digit_count, consonant_vowel_ratio
D. Entropy & Kompleksitas 3 fitur
url_entropy, hostname_entropy, path_query_entropy
E. Domain, TLD & Indikator Mencurigakan 12 fitur
is_suspicious_tld, suspicious_word_count, hostname_hyphen_count, is_shortener_domain, subdomain_count, domain_digit_count, domain_hyphen_count, has_port, brand_in_subdomain, query_param_count, brand_similarity, is_typosquatting
Model dan Optimasi

XGBoost yang Dioptimasi dengan Bayesian Optimization

Algoritma & Metode
  • Algoritma: XGBoost Classifier (objective binary:logistic, eval_metric logloss, tree_method hist)
  • Metode optimasi: Bayesian Optimization via Optuna dengan TPE Sampler
  • Objektif optimasi: memaksimalkan F1-Score pada data validasi
  • Jumlah trial: 40 trial
  • Data tuning: subsample 120.000 baris dari data latih (sudah di-SMOTE) demi efisiensi
  • Model final dilatih ulang pada gabungan train + validation agar perbandingan adil

#31

Trial Terbaik

0,8859

F1 Validasi Terbaik

Hyperparameter Hasil Optimasi
Hyperparameter Nilai Optimal
n_estimators 898
learning_rate 0.0626537837298013
max_depth 10
min_child_weight 5
subsample 0.9465971350785821
colsample_bytree 0.65733830212863
gamma 0.016566125599230985
reg_alpha 7,789842528382075 × 10⁻⁸
reg_lambda 0,00028810489427179807
Perbandingan Sebelum & Sesudah Optimasi

Dampak Bayesian Optimization pada Performa Model

Kedua model dievaluasi pada test set yang sama (74.574 data, tidak pernah dilihat selama tuning), menggunakan threshold optimal masing-masing. Selisihnya murni berasal dari proses optimasi hyperparameter.

Metrik Sebelum Sesudah Gap %
Accuracy 0,9201 0,9404 +0,0203 +2,20%
Precision 0,8465 0,9004 +0,0539 +6,37%
Recall 0,9012 0,9044 +0,0032 +0,36%
F1-Score 0,8730 0,9024 +0,0294 +3,37%
F1-Score — Sebelum Optimasi
F1-Score — Sesudah Optimasi
Accuracy — Sebelum Optimasi
Accuracy — Sesudah Optimasi
Feature Importance

Fitur Paling Berpengaruh pada Model Akhir

Dihitung berdasarkan gain dari model XGBoost sesudah optimasi. Sepuluh fitur teratas berikut paling berkontribusi dalam membedakan URL phishing dari legitimate.

1. tld_length
2. is_suspicious_tld
3. suspicious_word_count
4. hostname_digit_count
5. hostname_digit_ratio
6. at_count
7. longest_token_length
8. double_slash_count
9. is_shortener_domain
10. longest_digit_run
Ringkasan Model Akhir

Model Final: XGBoost + Bayesian Optimization (Optuna)

Konfigurasi akhir: 42 fitur · SMOTE · Optuna TPE (40 trial) .

94,04%

Accuracy

90,04%

Precision

90,44%

Recall

90,24%

F1-Score

Kesimpulan Utama
  • Optimasi hyperparameter dengan Bayesian Optimization (Optuna) meningkatkan SELURUH metrik dibanding XGBoost default
  • F1-Score naik dari 0,8730 menjadi 0,9024 (+3,37%)
  • Model sesudah optimasi mempertahankan performa tinggi & seimbang pada Accuracy, Precision, Recall, dan F1
  • Fitur is_suspicious_tld, at_count, dan tld_length menjadi indikator paling kuat dalam mendeteksi URL phishing