Saya tidak dapat memahami halaman dari StandardScaler
dalam dokumentasi sklearn
.
Adakah yang bisa menjelaskan hal ini kepada saya secara sederhana?
python
machine-learning
scikit-learn
scaling
standardized
nitinvijay23
sumber
sumber
each value in the dataset will have the sample mean value subtracted
-- ini tidak benar. Rata-rata fitur / kolom SETIAP akan dikurangi dari nilai kolom tertentu. Ini dilakukan berdasarkan kolom. Tidak adasample mean value subtracted
- Lihat jawaban saya di bawah iniIntro: Saya berasumsi bahwa Anda memiliki matriks di
X
mana setiap baris / baris adalah sampel / observasi dan setiap kolom adalah variabel / fitur (ini adalah masukan yang diharapkan untuksklearn
fungsi ML apa pun dengan cara -X.shape
seharusnya[number_of_samples, number_of_features]
).Inti metode : Ide utamanya adalah menormalkan / membakukan, yaitu
μ = 0
danσ = 1
fitur / variabel / kolom AndaX
, satu per satu , sebelum menerapkan model pembelajaran mesin apa pun.StandardScaler()
akan menormalkan fitur yaitu setiap kolom X, INDIVIDU , sehingga setiap kolom / fitur / variabel akan memilikiμ = 0
danσ = 1
.PS: Saya menemukan jawaban yang paling disukai di halaman ini salah. Saya mengutip "setiap nilai dalam kumpulan data akan memiliki sampel nilai rata-rata dikurangi" - Ini tidak benar atau tidak benar.
Lihat juga: Bagaimana dan mengapa Standarisasi data Anda: Tutorial python
Contoh:
Pastikan bahwa rata-rata setiap fitur (kolom) adalah 0:
Pastikan std dari setiap fitur (kolom) adalah 1:
Matematika:
UPDATE 08/2019 : Mengenai parameter input
with_mean
danwith_std
keFalse
/True
, saya telah memberikan jawabannya di sini: Perbedaan StandardScaler antara "with_std = False or True" dan "with_mean = False or True"sumber
[1.15, 1.15]
ketika saya menghitung sebagai panda df:pd.DataFrame(scaled_data).std(0)
?pd.DataFrame(scaled_data)[0]
saya mendapatkan seri denganName: 0, dtype: float64
dan nilai[-1.0, 1.0, -1.0, 1.0]
. Maaf untuk formatnyaStandardScaler
, apakah itu membuat algoritme pembelajaran mesin berjalan lebih cepat, atau membantu membuat keputusan yang lebih akurat, atau yang lainnya?Bagaimana cara menghitungnya:
Anda dapat membaca lebih lanjut di sini:
sumber
StandardScaler melakukan tugas Standardisasi . Biasanya kumpulan data berisi variabel yang berbeda dalam skala. Misal, dataset Employee akan berisi kolom AGE dengan nilai skala 20-70 dan kolom SALARY dengan nilai skala 10000-80000 .
Karena kedua kolom ini memiliki skala yang berbeda, keduanya distandarkan untuk memiliki skala yang sama saat membuat model pembelajaran mesin.
sumber
Ini berguna saat Anda ingin membandingkan data yang sesuai dengan unit yang berbeda. Dalam hal ini, Anda ingin menghapus unitnya. Untuk melakukannya dengan cara yang konsisten pada semua data, Anda mengubah data sedemikian rupa sehingga variansnya adalah kesatuan dan mean deretnya adalah 0.
sumber
Jawaban di atas bagus, tetapi saya membutuhkan contoh sederhana untuk meredakan beberapa kekhawatiran yang saya miliki di masa lalu. Saya ingin memastikan itu memang memperlakukan setiap kolom secara terpisah. Sekarang saya diyakinkan dan tidak dapat menemukan contoh apa yang membuat saya khawatir. Semua kolom ADALAH skala terpisah seperti yang dijelaskan di atas.
KODE
KELUARAN
sumber
Berikut adalah contoh kerja sederhana untuk menjelaskan cara kerja penghitungan standarisasi. Bagian teori sudah dijelaskan dengan baik di jawaban lain.
Perhitungan
Seperti yang Anda lihat di output, mean adalah [6. , 2.5] dan deviasi standar adalah [1.41421356, 0.8660254]
Data posisi (0,1) adalah 2 Standardisasi = (2 - 2.5) /0.8660254 = -0.57735027
Data pada posisi (1,0) adalah 4 Standardisasi = (4-6) /1.41421356 = -1.414
Hasil Setelah Standardisasi
Periksa Mean dan Deviasi Std Setelah Standarisasi
Catatan: -2.77555756e-17 sangat dekat dengan 0.
Referensi
Bandingkan efek dari berbagai scaler pada data dengan outlier
Apa perbedaan antara Normalisasi dan Standardisasi?
Rata-rata data yang diskalakan dengan sklearn StandardScaler bukan nol
sumber
Setelah diterapkan
StandardScaler()
, setiap kolom di X akan memiliki mean 0 dan deviasi standar 1.Rumus dicantumkan oleh orang lain di halaman ini.
Rasional: beberapa algoritme memerlukan data agar terlihat seperti ini (lihat dokumentasi sklearn ).
sumber