Materi
Diskretisasi (binning) mengubah atribut numerik menjadi beberapa interval, misalnya umur menjadi kelompok muda, dewasa, dan lansia. User Guide scikit-learn di bagian Discretization menyebutnya cara membagi fitur kontinu menjadi nilai diskret, dan KBinsDiscretizer menyediakan strategi uniform, quantile, dan kmeans. Hasilnya dipakai untuk algoritma yang menuntut atribut kategori, seperti Naive Bayes di modul 3, atau untuk laporan yang lebih mudah dibaca.
Lebar sama (equal-width; strategi uniform; pandas.cut dengan bins berupa angka) membagi rentang minimum sampai maksimum menjadi k interval yang sama panjang: lebar = (maks − min) ÷ k. Frekuensi sama (equal-frequency; strategi quantile; pandas.qcut) memilih batas di kuantil, sehingga setiap interval berisi kira-kira sama banyak data.
Contoh dengan nilai ujian 40, 55, 60, 62, 65, 70, 90, dan 100 menjadi dua kelompok. Lebar sama: (100 − 40) ÷ 2 = 30, jadi batasnya 70; enam nilai masuk kelompok bawah dan dua masuk kelompok atas, dan 70 ikut kelompok bawah karena pandas.cut memakai interval tertutup kanan. Frekuensi sama: batasnya median 63,5, jadi setiap kelompok berisi empat nilai. Pada data menceng, satu nilai sangat besar menarik batas lebar sama sehingga hampir semua data berdesakan di interval pertama; frekuensi sama hanya bergantung pada urutan data, bukan besarnya.
import pandas as pd
nilai = pd.Series([40, 55, 60, 62, 65, 70, 90, 100])
print(pd.cut(nilai, bins=2).value_counts(sort=False).tolist()) # [6, 2]
print(pd.qcut(nilai, q=2).value_counts(sort=False).tolist()) # [4, 4]