Ya, tampaknya dijelaskan di beberapa tempat berbeda, tanpa tautan ke makalah apa pun.
The dokumentasi kelas merangkum algoritma sebagai berikut:
Transformasi diterapkan pada setiap fitur secara independen. Fungsi kepadatan kumulatif fitur digunakan untuk memproyeksikan nilai asli. Nilai fitur dari data baru / tidak terlihat yang berada di bawah atau di atas kisaran yang sesuai akan dipetakan ke batas distribusi output. Perhatikan bahwa transformasi ini non-linear. Ini mungkin mendistorsi korelasi linear antara variabel yang diukur pada skala yang sama tetapi membuat variabel yang diukur pada skala yang berbeda lebih langsung sebanding.
Dan panduan pengguna menambahkan beberapa informasi baru:
Namun, dengan melakukan transformasi peringkat, ia memperlancar distribusi yang tidak biasa dan kurang dipengaruhi oleh pencilan daripada metode penskalaan. Namun, hal itu mendistorsi korelasi dan jarak di dalam dan di seluruh fitur.
Secara khusus, untuk transformasi normal:
Dengan demikian median input menjadi rata-rata output, berpusat pada 0. Output normal terpotong sehingga minimum dan maksimum input - sesuai dengan kuantil 1e-7 dan 1 - 1e-7 masing-masing - tidak menjadi tak terbatas di bawah transformasi.
The permintaan tarik GitHub untuk estimator ini referensi satu yang lebih tua yang menunjukkan itu awalnya akan bernama "peringkat scaler".
Dalam istilah yang lebih luas, makalah ini memberikan ringkasan yang baik tentang berbagai cara yang dapat diterapkan "transformasi normal terbalik (INTs)":
INT adalah cara mentransformasikan distribusi sampel dari variabel kontinu agar tampak lebih terdistribusi secara normal. Ada beberapa jenis INT. Perbedaan pertama yang kami buat adalah antara INT berbasis peringkat dan non-peringkat. INT non-rank-based memerlukan asumsi fungsi distribusi kumulatif (CDF) tertentu untuk data yang diamati, memperkirakan parameter dari distribusi itu, mengubah skor yang diamati menjadi perkiraan kuantil dari CDF, dan kemudian mengonversi kuantil ini ke standar normal penyimpangan menggunakan invers normal. normal (atau fungsi probit). INT yang tidak berbasis peringkat seperti itu biasanya disebut sebagai kopula (Basrak et al. 2004; Li et al. 2006) dan tidak akan dipertimbangkan lebih lanjut. Perlu dicatat, bagaimanapun, bahwa INT berbasis peringkat dapat dinyatakan sebagai kasus khusus dari metode kopula di mana CDF empiris digunakan alih-alih membatasi CDF ke beberapa keluarga distribusi. Artinya, setiap momen berlaku diperkirakan dari data dan kuantil menjadi fungsi sederhana dari peringkat.
INT berbasis peringkat melibatkan langkah awal untuk mengubah variabel menjadi peringkat dan selanjutnya dapat dibagi lagi menjadi dua kelas: mereka yang melibatkan elemen stokastik dan mereka yang deterministik. Kami menyadari hanya satu INT yang melibatkan elemen stokastik dan pendekatan ini telah disebut sebagai penggunaan "penyimpangan normal acak" (Conover 1980). Salah satu pencegah terhadap pendekatan ini adalah bahwa setiap penyelidik yang menerapkan metode yang sama pada dataset yang sama akan memperoleh jawaban yang sedikit berbeda, yang mungkin tidak memuaskan bagi sebagian orang. Pendekatan ini memiliki keuntungan teoritis untuk menghindari granularitas dalam distribusi nilai P, masalah yang sering mengganggu banyak tes nonparametrik. Namun demikian, sifat stochastic dari INT ini tampaknya membuat para peneliti enggan dan mereka jarang, jika pernah, digunakan.
INT berbasis peringkat deterministik dapat digolongkan ke dalam mereka yang menggunakan skor normal yang diharapkan (Fisher dan Yates 1938) dibandingkan mereka yang menggunakan kembali transformasi sampel kuantil (atau peringkat fraksional) untuk mendekati skor normal yang diharapkan. Menggunakan integrasi numerik, Harter (1961) telah menyediakan tabel skor normal yang diharapkan paling lengkap. INT yang melibatkan transformasi balik peringkat fraksional untuk memperkirakan skor normal yang diharapkan dari Fisher dan Yates (Maritz 1982) tampaknya menjadi yang paling umum digunakan dalam penelitian genetik dan akan menjadi fokus utama perhatian. Dalam peringkat transformasi balik, offset fraksional diperlukan untuk menghindari agar pengamatan minimum dan maksimum diubah menjadi infinity negatif dan positif, secara berurutan.
Melihat QuantileTransformer
kode tersebut , sepertinya item terakhir dalam daftar: INT berbasis peringkat deterministik yang menghitung variabel peringkat yang dimodifikasi.
Namun, ini adalah implementasi yang relatif sederhana:
- menghitung peringkat empiris, menggunakan
numpy.percentile
- memodifikasi peringkat melalui interpolasi, menggunakan
numpy.interp
- peta ke distribusi normal dengan membalik CDF, menggunakan
scipy.stats.norm.ppf
berhati-hati untuk berurusan dengan batasan di ekstremitas.
Merepresentasikan sebagai pemetaan yang sangat sederhana, yaitu mengabaikan interpolasi dan logika pembatas, itu hanya akan menjadiysaya=Φ- 1( F(xsaya) )dimana F dan Φ masing-masing mewakili CDF dari distribusi Normal empiris dan standar.