Normalisasi

Tujuan normalisasi adalah mengubah fitur agar berada pada skala yang serupa. Hal ini meningkatkan performa dan stabilitas pelatihan model.

Sekilas Teknik Normalisasi

Empat teknik normalisasi umum mungkin berguna:

  • menskalakan ke rentang
  • pemotongan
  • penskalaan log
  • skor-z

Diagram berikut menunjukkan efek setiap teknik normalisasi pada distribusi fitur mentah (harga) di sebelah kiri. Diagram ini didasarkan pada set data dari Automotive Yearbook tahun 1985 di Ward yang merupakan bagian dari UCI Machine Learning Repository pada Automobile Data Set.

Lima grafik: 1. distribusi mentah. 2. distribusi mentah diskalakan ke
rentang, yang memiliki bentuk yang sama dengan distribusi mentah. 3. distribusi mentah yang terpotong, yang menghilangkan nilai tertinggi. 4. distribusi
mentah yang diskalakan oleh logaritma, yang menggabungkan data di tengah
distribusi. 5. skor-z distribusi, yang memiliki bentuk serupa dengan distribusi mentah.

Gambar 1. Ringkasan teknik normalisasi.

Penskalaan ke rentang

Ingat dari MLCC bahwa penskalaan berarti mengonversi nilai fitur floating point dari rentang alaminya (misalnya, 100 hingga 900) ke rentang standar—biasanya 0 dan 1 (atau terkadang -1 ke +1). Gunakan formula sederhana berikut untuk menskalakan ke rentang:

\[ x' = (x - x_{min}) / (x_{max} - x_{min}) \]

Penskalaan ke rentang adalah pilihan yang baik jika kedua kondisi berikut terpenuhi:

  • Anda mengetahui perkiraan batas atas dan bawah pada data dengan sedikit atau tanpa pencilan.
  • Data Anda kira-kira tersebar secara merata di seluruh rentang tersebut.

Contoh yang bagus adalah usia. Sebagian besar nilai usia berada di antara 0 dan 90, dan setiap bagian dari rentang tersebut memiliki jumlah orang yang cukup besar.

Sebaliknya, Anda tidak akan menggunakan penskalaan pada pendapatan, karena hanya beberapa orang memiliki pendapatan yang sangat tinggi. Batas atas skala linear untuk pendapatan akan sangat tinggi, dan sebagian besar orang akan dimasukkan ke dalam bagian kecil skala tersebut.

Kliping Fitur

Jika set data Anda berisi pencilan yang ekstrem, Anda dapat mencoba memotong fitur, yang membatasi semua nilai fitur di atas (atau di bawah) nilai tertentu ke nilai tetap. Misalnya, Anda dapat memotong semua nilai suhu di atas 40 menjadi tepat 40.

Anda dapat menerapkan pemotongan fitur sebelum atau setelah normalisasi lainnya.

Formula: Tetapkan nilai min/maks untuk menghindari pencilan.

Perbandingan distribusi native dan distribusi terbatas. Dalam
distribusi native, hampir semua nilai berada dalam rentang 1 hingga 4, tetapi
sebagian kecil nilai berada di antara 5 dan 55. Dalam distribusi terbatas,
semua nilai yang awalnya di atas 4 sekarang memiliki
nilai 4.

Gambar 2. Membandingkan distribusi mentah dan versi terpotongnya.

Strategi pemangkasan sederhana lainnya adalah memotong skor z menjadi +-NŌ (misalnya, batasi hingga +-3TRY). Perhatikan bahwa SSB adalah simpangan standar.

Penskalaan Log

Penskalaan log menghitung log nilai untuk mengompresi rentang yang luas ke rentang yang sempit.

\[ x' = log(x) \]

Penskalaan log berguna jika beberapa nilai memiliki banyak poin, sementara sebagian besar nilai lainnya memiliki sedikit poin. Distribusi data ini dikenal sebagai distribusi power law. Rating film adalah contoh yang baik. Dalam diagram di bawah ini, sebagian besar film memiliki sangat sedikit rating (data di belakang angka), sementara beberapa film memiliki banyak rating (data di awal). Penskalaan log mengubah distribusi, membantu meningkatkan performa model linear.

Dua grafik yang membandingkan data mentah vs. log data mentah. Grafik data mentah
menunjukkan banyak rating di kepala, diikuti dengan ekor yang panjang. Grafik log
memiliki distribusi yang lebih
rata.

Gambar 3. Membandingkan distribusi mentah dengan lognya.

Skor Z

Z-score adalah variasi penskalaan yang merepresentasikan jumlah simpangan standar dari rerata. Anda akan menggunakan skor z untuk memastikan distribusi fitur Anda memiliki rata-rata = 0 dan std = 1. Hal ini berguna jika ada beberapa pencilan, tetapi tidak terlalu ekstrem sehingga Anda perlu klip.

Formula untuk menghitung skor-z suatu titik, x, adalah sebagai berikut:

\[ x' = (x - μ) / σ \]

Dua grafik yang membandingkan data mentah vs. data yang dinormalisasi dengan skor-z. Data mentah menunjukkan distribusi Poisson yang kasar mulai dari 5.000 hingga 45.000.
Data yang dinormalkan berkisar dari -1 hingga +4.

Gambar 4. Membandingkan distribusi mentah dengan distribusi skor z.

Perhatikan bahwa skor z akan menekan nilai mentah yang memiliki rentang ~40.000 hingga rentang dari sekitar -1 hingga +4.

Misalkan Anda tidak yakin apakah pencilan benar-benar ekstrem. Dalam hal ini, mulailah dengan skor z kecuali Anda memiliki nilai fitur yang tidak ingin dipelajari oleh model; misalnya, nilainya adalah hasil dari error pengukuran atau quirk.

Ringkasan

Teknik NormalisasiFormulaKapan Digunakan
Penskalaan Linear $$ x' = (x - x_{min}) / (x_{max} - x_{min}) $$ Jika fitur didistribusikan kurang lebih secara seragam atau kurang di rentang tetap.
Klip jika x > maks, maka x' = maks. jika x < mnt, maka x' = mnt Jika fitur memiliki beberapa pencilan yang ekstrem.
Penskalaan Log x' = log(x) Saat fitur sesuai dengan hukum yang berlaku.
Skor Z x' = (x - μ) / SSB Jika distribusi fitur tidak berisi pencilan yang ekstrem.