Kapan menggunakan Scaler Standar dan kapan Normalizer?

12

Saya mengerti apa yang dilakukan Standard Scalar dan apa yang dilakukan Normalizer, sesuai dengan dokumentasi scikit: Normalizer , Standard Scaler .

Saya tahu kapan Standard Scaler diterapkan. Tetapi dalam skenario manakah Normalizer diterapkan? Apakah ada skenario di mana satu lebih disukai daripada yang lain?

Heisenbug
sumber
Anda tidak selalu perlu menggunakan salah satu : Ini juga layak menambahkan bahwa algoritma pengklasifikasi / regresi berbasis pohon (RF / XGB / GBT) tidak perlu standarisasi, Anda hanya bisa memberi mereka data mentah. (Anda mungkin masih memilih untuk melakukan standardisasi, misalnya untuk merencanakan, korelasi, ukuran hubungan)
smci

Jawaban:

9

Mereka digunakan untuk dua tujuan berbeda.

StandardScalermengubah setiap kolom fitur menjadif:,i

f:,i=f:,imean(f:,i)std(f:,i).

Normalizermengubah setiap sampel menjadi mana untukxn=(fn,1,...,fn,d)

xn=xnsize(xn),
size(xn)

  1. l1norma adalah,xn1=|fn,1|+...+|fn,d|
  2. l2norma adalah ,xn2=fn,12+...+fn,d2
  3. maxnorma adalah .xn=max{|fn,1|,...,|fn,d|}

Untuk menggambarkan kontras, pertimbangkan kumpulan data yang satu dimensi (setiap titik data memiliki satu fitur), Setelah menerapkan , kumpulan data menjadi . Setelah menerapkan jenis apa pun , kumpulan data menjadi , karena satu-satunya fitur dibagi dengan sendirinya. Jadi tidak ada gunanya untuk kasus ini. Ini juga tidak digunakan ketika fitur memiliki unit yang berbeda, misalnya .{1,2,3,4,5}
StandardScaler{1.41,0.71,0.,0.71,1.41}
Normalizer{1.,1.,1.,1.,1.}Normalizer(height,age,income)

Seperti yang disebutkan dalam jawaban ini , Normalizersebagian besar berguna untuk mengendalikan ukuran vektor dalam proses berulang, misalnya vektor parameter selama pelatihan, untuk menghindari ketidakstabilan numerik karena nilai yang besar.

Orang Esma
sumber
2
  • StandardScaler: Mengubah data sedemikian rupa sehingga memiliki arti 0 dan standar deviasi sebagai 1. Singkatnya, ini menstandarisasi data . Standarisasi berguna untuk data yang memiliki nilai negatif. Ini mengatur data dalam distribusi normal standar . Ini lebih berguna dalam klasifikasi daripada regresi . Anda dapat membaca blog saya ini.

  • Normalizer: Ini meremas data antara 0 dan 1. Ini melakukan normalisasi . Karena rentang dan besarnya menurun, gradien dalam proses pelatihan tidak meledak dan Anda tidak mendapatkan nilai kerugian yang lebih tinggi. Apakah lebih berguna dalam regresi dari klasifikasi . Anda dapat membaca blog saya ini.

Shubham Panchal
sumber
2
Normalizer yang telah Anda tentukan di blog Anda adalah scaler MinMax. Tautan yang saya buat untuk normalisasi berbeda. Itu membuat norma l2 dari setiap baris data sama dengan 1.
Heisenbug
Jawaban ini dapat membantu Anda.
Shubham Panchal
7
-1: "[standardisasi] mengatur data dalam distribusi normal." Anda harus mengklarifikasi apa yang Anda maksud dengan ini. Saya membaca ini sebagai "standardisasi mengubah data menjadi distribusi normal", yang tidak benar. Anda juga harus menjelaskan mengapa standardisasi lebih berguna dalam klasifikasi daripada regresi (dan sebaliknya untuk normalisasi); Saya meragukan klaim itu.
Artem Mavrin