Pembuatan bucket

Mari kita mulai dengan meninjau ide utama dari Kursus Crash Machine Learning. Lihat distribusi pada diagram di bawah.

Plot rumah per lintang. plotnya sangat tidak teratur, berisi
doldrum di sekitar garis lintang 36 dan lonjakan besar di sekitar garis lintang 34
dan 38. Gambar 1: Harga rumah versus lintang.

 

Untuk pertanyaan berikut, klik panah yang diinginkan untuk memeriksa jawaban Anda:

Perhatikan Gambar 1. Jika menurut Anda lintang mungkin merupakan prediktor yang baik untuk nilai perumahan, apakah Anda harus membiarkan lintang sebagai nilai floating point? Apa alasannya? (Asumsikan ini adalah model linear.)
Ya — jika lintang adalah nilai floating-point dalam set data, Anda tidak boleh mengubahnya.
Jika nilai feed floating point tersebut dimasukkan ke dalam jaringan, Anda akan mencoba mempelajari hubungan linear antara fitur dan label. Namun, hubungan linear tidak mungkin dilakukan untuk lintang. Peningkatan satu derajat garis lintang (misalnya, dari 34 menjadi 35 derajat) dapat menghasilkan beberapa perubahan dalam output model, sedangkan peningkatan satu derajat yang berbeda (misalnya, dari 35 menjadi 36 derajat) dapat menghasilkan jumlah perubahan yang berbeda. Itu adalah perilaku non-linear.
Tidak — tidak ada hubungan linear antara garis lintang dan nilai perumahan.
Anda mencurigai bahwa setiap lintang dan nilai perumahan terkait, tetapi hubungannya tidak linier.

Dalam kasus seperti contoh lintang, Anda harus membagi lintang ke dalam bucket untuk mempelajari sesuatu yang berbeda tentang nilai perumahan untuk setiap bucket. Transformasi fitur numerik ini menjadi fitur kategoris, menggunakan serangkaian nilai minimum, disebut bucketing (atau pengelompokan). Dalam contoh bucketing ini, batas jaraknya sama.

Plot harga lintang vs. perumahan yang sama seperti gambar sebelumnya. Namun, kali
ini, plot dibagi menjadi 11 "bins" di antara seluruh
garis lintang.

 

Gambar 2: Harga rumah versus lintang, sekarang dibagi menjadi beberapa bucket.

Keranjang Kuantil

Mari lihat kembali set data harga mobil kami dengan bucket yang ditambahkan. Dengan satu fitur per bucket, model menggunakan kapasitas sebanyak untuk satu contoh dalam rentang >45.000, seperti untuk semua contoh dalam rentang 5.000-10.000. Sepertinya ini boros. Bagaimana kami dapat memperbaiki situasi ini?

Plot harga mobil per jumlah mobil yang dijual dengan harga tersebut. Plot dibagi
menjadi 10 bucket dengan ukuran yang sama dengan rentang 5.000 (harga mobil). Tiga bucket pertama berisi banyak contoh, tetapi tujuh bucket terakhir berisi sangat sedikit contoh.

Gambar 3: Jumlah mobil yang dijual dengan harga yang berbeda.

 

Masalahnya adalah bucket dengan jarak yang sama tidak menangkap distribusi ini dengan baik. Solusinya terletak pada pembuatan bucket yang masing-masing memiliki jumlah titik yang sama. Teknik ini disebut bucketing kuantil. Misalnya, gambar berikut ini membagi harga mobil menjadi bucket kuantil. Untuk mendapatkan jumlah contoh yang sama di setiap bucket, beberapa bucket mencakup rentang harga yang sempit sementara yang lain mencakup rentang harga yang sangat luas.

Sama seperti Gambar 3, kecuali dengan bucket kuantil. Artinya, bucket sekarang memiliki ukuran yang berbeda. Bucket terkecil memiliki rentang sekitar
1.000 dolar dan bucket terbesar memiliki rentang sekitar 25.000 dolar.
Jumlah mobil di setiap bucket saat ini hampir
sama.

Gambar 4: Bucketing kuantil memberikan setiap bucket jumlah yang sama untuk mobil.

Ringkasan Bucket

Jika Anda memilih untuk mengelompokkan fitur numerik, jelaskan cara Anda menetapkan batas dan jenis bucket yang Anda terapkan:

  • Bucket dengan batas yang memiliki jarak yang sama: batas tersebut tetap dan mencakup rentang yang sama (misalnya 0-4 derajat, 5-9 derajat, dan 10-14 derajat, atau $5.000-$9.999, $10.000-$14.999, dan $15.000-$19.999). Beberapa bucket dapat berisi banyak titik, sementara bucket lainnya memiliki sedikit atau tidak ada titik.
  • Bucket dengan batas kuantil: setiap bucket memiliki jumlah titik yang sama. Batas ini tidak tetap dan dapat mencakup rentang nilai yang sempit atau lebar.