Data numerik: Pengelompokan

Binning (disebut juga bucketing) adalah rekayasa fitur teknik yang mengelompokkan subrentang numerik yang berbeda ke dalam kelompok atau bucket. Dalam banyak kasus, {i>binning<i} mengubah data numerik menjadi data kategorikal. Misalnya, pertimbangkan fitur bernama X yang nilai terendahnya adalah 15 dan nilai tertinggi adalah 425. Dengan menggunakan binning, Anda dapat merepresentasikan X dengan lima kelompok berikut:

  • Bin 1: 15-34
  • Bin 2: 35 hingga 117
  • Bin 3: 118-279
  • Bin 4: 280 hingga 392
  • Bin 5: 393 hingga 425

Bin 1 mencakup rentang 15 hingga 34, sehingga setiap nilai X antara 15 dan 34 berakhir di Bin 1. Model yang dilatih pada kelompok ini tidak akan bereaksi berbeda menjadi nilai X 17 dan 29 karena kedua nilai berada dalam Bin 1.

Vektor fitur merepresentasikan lima {i>bin<i} sebagai berikut:

Nomor binRentangVektor fitur
1 15-34 [1,0, 0,0, 0,0, 0,0, 0,0]
2 35-117 [0,0, 1,0, 0,0, 0,0, 0,0]
3 118-279 [0,0, 0,0, 1,0, 0,0, 0,0]
4 280-392 [0,0, 0,0, 0,0, 1,0, 0,0]
5 393-425 [0,0, 0,0, 0,0, 0,0, 1,0]

Meskipun X adalah kolom tunggal dalam set data, binning menyebabkan model untuk memperlakukan X sebagai lima fitur terpisah. Oleh karena itu, model akan mempelajari bobot terpisah untuk setiap kelompok.

Pengelompokan adalah alternatif yang baik untuk penskalaan atau pemotongan jika salah satu kondisi berikut terpenuhi:

  • Keseluruhan hubungan linear antara fitur dan label lemah atau tidak ada.
  • Saat nilai fitur dikelompokkan.

Pengelompokan bisa terasa kontra-intuitif, mengingat bahwa model dalam contoh sebelumnya memperlakukan nilai 37 dan 115 secara identik. Tapi ketika fitur tampak lebih kaku daripada linear, binning adalah cara yang jauh lebih baik untuk mewakili data.

Contoh pengelompokan: jumlah pembeli versus suhu

Misalkan Anda membuat model yang memprediksi jumlah pembeli berdasarkan suhu luar pada hari tersebut. Berikut adalah plot versus jumlah pembeli:

Gambar 9. Sebuah diagram pencar berisi 45 poin. 45 poin secara alami
            dikelompokkan menjadi tiga kelompok.
Gambar 9. Sebuah diagram pencar berisi 45 poin.

Plot menunjukkan, tidak mengherankan, bahwa jumlah pembeli tertinggi ketika suhu yang paling nyaman.

Anda dapat menyatakan fitur sebagai nilai mentah: suhu 35,0 di akan menjadi 35,0 dalam vektor fitur. Apa itu ide yang terbaik?

Selama pelatihan, model regresi linear mempelajari satu bobot untuk setiap aplikasi baru. Oleh karena itu, jika suhu direpresentasikan sebagai fitur tunggal, maka 35,0 akan memiliki lima kali pengaruh (atau seperlima pengaruh) dalam prediksi sebagai suhu 7,0. Namun demikian, plot tidak benar-benar menunjukkan hubungan linier antara label dan nilai fitur.

Grafik ini menyarankan tiga klaster dalam subrentang berikut:

  • Bin 1 adalah kisaran suhu 4-11.
  • Bin 2 adalah rentang suhu 12-26.
  • Bin 3 adalah kisaran suhu 27-36.
Gambar 10. Diagram pencar yang sama dari 45 poin seperti di diagram sebelumnya
            gambar, tetapi dengan garis vertikal 
untuk membuat {i>bin<i} lebih jelas.
Gambar 10. Diagram pencar dibagi menjadi tiga {i>bin<i}.

Model ini mempelajari bobot terpisah untuk setiap kelompok.

Meskipun memungkinkan untuk membuat lebih dari tiga {i>bin<i}, bahkan satu {i>bin<i} terpisah untuk setiap pembacaan suhu, ini sering kali merupakan ide yang buruk karena alasan berikut:

  • Model hanya bisa mempelajari asosiasi antara bin dan label jika ada yang memiliki cukup contoh. Pada contoh yang diberikan, masing-masing dari 3 bin berisi setidaknya 10 contoh, yang mungkin cukup untuk pelatihan. Dengan 33 {i>bin <i}terpisah, tidak ada satu pun {i>bin<i} yang berisi cukup contoh untuk model yang akan dilatih.
  • Tempat terpisah untuk setiap suhu menghasilkan 33 fitur suhu terpisah. Namun, sebaiknya Anda meminimalkan jumlah fitur dalam model.

Latihan: Memeriksa pemahaman Anda

Plot berikut menunjukkan rata-rata harga rumah untuk setiap 0,2 derajat lintang untuk negara mitos Freedonia:

Gambar 11. Plot nilai rumah per lintang. Rumah terendah
            nilai adalah sekitar 327 dan yang tertinggi adalah 712. Garis lintang sepanjang 41,0
            hingga 44,8, dengan titik yang mewakili
nilai rumah median untuk setiap
            0,2 derajat lintang. Polanya sangat tidak teratur, tetapi dengan
            dua klaster berbeda (satu klaster antara garis lintang 41,0 dan 41,8,
            dan cluster lain di antara lintang 42,6 dan 43,4).
Gambar 11. Nilai rumah median per garis lintang 0,2 derajat.

Grafik menunjukkan pola nonlinier antara nilai rumah dan lintang, sehingga merepresentasikan garis lintang sebagai nilai floating point-nya tidak akan membantu model membuat prediksi yang baik. Mungkin garis lintang pengelompokan akan lebih baik ide?

Manakah strategi pengelompokan yang terbaik?
Jangan bucket.
Mengingat keacakan dari sebagian besar plot, mungkin ini adalah strategi terbaik.
Buat empat bucket:
  • 41,0 hingga 41,8
  • 42,0 hingga 42,6
  • 42,8 hingga 43,4
  • 43,6 hingga 44,8
Akan sulit bagi model untuk menemukan satu bobot prediktif untuk semua rumah di tempat sampah kedua atau keempat, yang berisi beberapa contoh.
Jadikan setiap titik data sebagai bucket-nya sendiri.
Ini hanya akan membantu jika set pelatihan berisi cukup contoh untuk setiap 0,2 derajat lintang. Secara umum, rumah cenderung berkumpul di dekat kota dan relatif langka di tempat.

Pengelompokkan Kuantil

Bucketing kuantil membuat batas pengelompokan sehingga jumlah contoh di setiap bucket sama persis atau hampir sama. Pengelompokan kuantil kebanyakan yang menyembunyikan {i>outlier.<i}

Untuk menggambarkan masalah yang dapat diselesaikan oleh bucketing kuantil, pertimbangkan bucket dengan jarak yang sama yang ditunjukkan dalam gambar berikut, di mana masing-masing dari sepuluh ember mewakili kisaran dengan tepat 10.000 dolar. Perhatikan bahwa bucket dari 0 hingga 10.000 berisi lusinan contoh tetapi bucket dari 50.000 hingga 60.000 hanya berisi 5 contoh. Akibatnya, model memiliki cukup contoh untuk dilatih pada 0 hingga 10.000 tetapi jumlah contoh yang ada tidak cukup untuk dilatih pada bucket 50.000 hingga 60.000.

Gambar 13. Plot harga mobil versus jumlah mobil yang dijual
            sesuai dengan harga tersebut. Jumlah mobil yang terjual memuncak dengan harga 6.000.
            Di atas harga 6.000, jumlah mobil yang dijual secara umum
            menurun, dengan sangat sedikit mobil yang dijual antara harga 40.000 hingga
            60.000. Plot ini dibagi menjadi 6 bucket berukuran sama, masing-masing dengan
            kisaran 10.000. Jadi, kotak pertama berisi
semua mobil yang terjual
            antara harga 0 dan 10.000, yang kedua
            ember berisi semua mobil yang dijual antara harga 10.001 dan
            20.000, dan seterusnya. Bucket pertama berisi banyak contoh; setiap
            bucket berikutnya berisi lebih sedikit contoh.
Gambar 13. Beberapa bucket berisi banyak mobil; bucket lain berisi sangat sedikit mobil.

Sebaliknya, gambar berikut menggunakan bucketing kuantil untuk membagi harga mobil ke dalam {i>bin<i} dengan jumlah contoh yang kira-kira sama di setiap {i>bucket<i}. Perhatikan bahwa beberapa bin mencakup rentang harga yang sempit sementara yang lain mencakup rentang harga yang sangat luas.

Gambar 14. Sama seperti gambar sebelumnya, kecuali dengan bucket kuantil.
            Artinya, bucket sekarang memiliki ukuran yang berbeda. Bucket pertama
            berisi mobil-mobil yang dijual dari 0 
hingga 4.000, ember kedua berisi
            mobil yang dijual dari 4.001 
menjadi 6.000. Bucket keenam berisi
            mobil dijual dari 25.001 menjadi 60.000. Jumlah mobil di setiap kelompok
            sekarang hampir sama.
Gambar 14. Pengelompokan kuantil memberi setiap bucket hampir sama jumlah mobil.