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?
python
scikit-learn
data-cleaning
normalization
Heisenbug
sumber
sumber
Jawaban:
Mereka digunakan untuk dua tujuan berbeda.
StandardScaler
mengubah setiap kolom fitur menjadiNormalizer
mengubah setiap sampel menjadi mana untukl1
norma adalah,l2
norma adalah ,max
norma adalah .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}
{−1.41,−0.71,0.,0.71,1.41}
{1.,1.,1.,1.,1.} (height,age,income)
StandardScaler
Normalizer
Normalizer
Seperti yang disebutkan dalam jawaban ini ,
Normalizer
sebagian besar berguna untuk mengendalikan ukuran vektor dalam proses berulang, misalnya vektor parameter selama pelatihan, untuk menghindari ketidakstabilan numerik karena nilai yang besar.sumber
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.sumber