BinBoost
Gradient Boosting Berbasis Aturan Logika Adaptif untuk Fitur Biner
BinBoost adalah algoritma klasifikasi gradient boosting yang membangun ensemble aturan logika murni (AND, OR, XOR) dengan binarisasi fitur numerik adaptif berbasis gradien pada setiap iterasi boosting. Setiap weak learner berupa aturan yang dapat dibaca langsung oleh manusia tanpa memerlukan alat bantu penjelasan pasca-pelatihan.
Kebaruan Utama
- Binarisasi adaptif berbasis gradien: nilai ambang batas fitur numerik dicari per iterasi untuk memaksimalkan korelasi dengan gradien saat ini
- Ensemble aturan logika murni: tidak ada pohon keputusan, setiap weak learner adalah aturan seperti
(A AND B)atau(C OR D)
Instalasi
pip install binboost
Penggunaan Dasar
import numpy as np
from binboost import BinBoost
X = np.array([[1, 0, 1], [0, 1, 0], [1, 1, 0], [0, 0, 1]], dtype=float)
y = np.array([1, 0, 1, 0])
model = BinBoost(n_estimators=50, learning_rate=0.1, max_rule_length=2)
model.fit(X, y)
print(model.predict(X))
print(model.predict_proba(X))
print(model.rules_)
import pandas as pd
print(pd.DataFrame(model.rule_summary_))
Hyperparameter Utama
| Parameter | Bawaan | Keterangan |
|---|---|---|
n_estimators |
100 | Jumlah iterasi boosting |
learning_rate |
0.1 | Faktor penyusutan tiap aturan |
loss |
'logistic' |
Fungsi loss: 'logistic', 'focal', 'poly' |
max_rule_length |
2 | Jumlah maksimum fitur dalam satu aturan |
operators |
['AND','OR'] |
Operator logika yang digunakan |
beam_width |
5 | Lebar beam search |
binarize_strategy |
'gradient' |
Strategi binarisasi: 'gradient', 'quantile', 'uniform', 'kmeans' |
subsample |
0.8 | Fraksi data per iterasi |
feature_selection_threshold |
0.01 | Ambang batas seleksi fitur berbasis gradien |
Fitur yang Didukung
- Fitur biner (0/1): langsung diproses
- Fitur numerik (int/float): dibinarisasi otomatis
- Fitur kategorikal 3+ kelas: wajib OneHotEncode terlebih dahulu
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(sparse_output=False, drop='first')
X_encoded = enc.fit_transform(X[['kolom_kategorikal']])
BinBoost secara otomatis mendeteksi kelompok fitur OneHotEncoding dan mencegah aturan yang tidak masuk akal seperti (Warna_Merah AND Warna_Biru).
Atribut Setelah Pelatihan
model.rules_ # daftar teks aturan
model.rule_weights_ # bobot setiap aturan
model.feature_importances_ # skor kepentingan fitur
model.train_score_ # loss per iterasi
model.rule_summary_ # ringkasan lengkap atau konversi ke DataFrame
model.n_rules_ # jumlah aturan aktif
model.feature_usage_ # frekuensi penggunaan tiap fitur
Lisensi
MIT
Release files for binboost 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| binboost-0.2.1.tar.gz | 15.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| binboost-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.5 kB
Release files / binboost-0.2.1.tar.gz
| Download URL | binboost-0.2.1.tar.gz |
|---|---|
| Size | 15.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e17d8d68bbc936893f08851d36293c2ec64de748b909112c1cc28f92cd17162c
|
|
BLAKE2b-256 checksum How to use checksums |
f388df81fdc015f8ffec053ecd172bfc3339be63daa6499b3e44656412b4c759
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Release files / binboost-0.2.1-py3-none-any.whl
| Download URL | binboost-0.2.1-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a3a78cb5b71a10ab61028d0fe1fdb7de98f8a9a5db302b144915854a66bdfe7
|
|
BLAKE2b-256 checksum How to use checksums |
8a17038380df911ed7689fdeb21613d87bba21fd2861f75e6655f0da0b18fd3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|