Di kotak alat sklearn-python, ada dua fungsi transform
dan fit_transform
tentang sklearn.decomposition.RandomizedPCA
. Penjelasan dari dua fungsi tersebut adalah sebagai berikut
Namun apa perbedaan diantara keduanya?
python
python-2.7
scikit-learn
tqjustc.dll
sumber
sumber
est.fit_transform(X)
selalu setara denganest.fit(X).transform(X)
, tetapi biasanya lebih cepat.Jawaban:
Di sini perbedaannya Anda dapat menggunakan pca.transform hanya jika Anda telah menghitung PCA pada matriks
jika Anda ingin menggunakan,
.transform
Anda perlu mengajarkan aturan transformasi ke pca AndaSecara khusus transformasi PCA menerapkan perubahan basis yang diperoleh dengan dekomposisi PCA dari matriks X ke matriks Z.
sumber
fit_transform
adalah kombinasi dari dua fungsifit
dantransform
?Dalam api estimator scikit-learn ,
fit()
: digunakan untuk menghasilkan parameter model pembelajaran dari data pelatihantransform()
: parameter yang dihasilkan darifit()
metode, diterapkan pada model untuk menghasilkan kumpulan data yang diubah.fit_transform()
: kombinasifit()
dantransform()
api pada kumpulan data yang samaLihat Bab-4 dari buku ini & jawaban dari stackexchange untuk lebih jelasnya
sumber
Metode ini digunakan untuk memusatkan / menampilkan skala data tertentu. Ini pada dasarnya membantu menormalkan data dalam rentang tertentu
Untuk ini, kami menggunakan metode Z-score.
Kami melakukan ini pada set data pelatihan.
1. Fit (): Metode menghitung parameter μ dan σ dan menyimpannya sebagai objek internal.
2. Transform (): Metode menggunakan parameter yang dihitung ini menerapkan transformasi ke dataset tertentu.
3. Fit_transform (): menggabungkan metode fit () dan transform () untuk transformasi dataset.
Potongan kode untuk Feature Scaling / Standardization (setelah train_test_split).
Kami menerapkan transformasi parameter yang sama (set pelatihan sama dua parameter μ dan σ (nilai)) pada set pengujian kami.
sumber
Perbedaan umum antara metode:
Baik fit_transform dan transform mengembalikan matriks istilah dokumen yang sama.
Sumber
sumber
Di sini perbedaan mendasar antara
.fit()
&.fit_transform()
:.cocok():
digunakan dalam Supervised learning yang memiliki dua objek / parameter (x, y) untuk menyesuaikan model dan membuat model untuk dijalankan, dimana kita tahu apa yang akan kita prediksi
.fit_transform ():
digunakan dalam Unsupervised Learning yang memiliki satu objek / parameter (x), dimana kita tidak tahu, apa yang akan kita prediksi.
sumber
Dalam istilah awam, fit_transform berarti melakukan beberapa perhitungan dan kemudian melakukan transformasi (misalnya menghitung sarana kolom dari beberapa data dan kemudian mengganti nilai yang hilang). Jadi untuk set pelatihan, Anda perlu menghitung dan melakukan transformasi.
Namun untuk set pengujian, Machine learning menerapkan prediksi berdasarkan apa yang telah dipelajari selama set pelatihan sehingga tidak perlu dihitung, mesin hanya melakukan transformasi.
sumber
Mengapa dan Kapan menggunakan masing-masing:
Semua tanggapannya cukup bagus, tetapi saya akan menekankan pada MENGAPA dan KAPAN menggunakan masing-masing metode.
fit (), transform (), fit_transform ()
Biasanya kami memiliki masalah pembelajaran yang diawasi dengan (X, y) sebagai kumpulan data, dan kami membaginya menjadi data pelatihan dan data pengujian:
Bayangkan kita memasang tokenizer, jika kita memasukkan X kita memasukkan data pengujian ke dalam tokenizer, tetapi saya telah melihat kesalahan ini berkali-kali!
Yang benar adalah HANYA cocok dengan X_train , karena Anda tidak tahu "data masa depan Anda" sehingga Anda tidak dapat menggunakan data X_test untuk menyesuaikan apa pun!
Kemudian Anda dapat mengubah data pengujian Anda, tetapi secara terpisah, itulah sebabnya ada metode yang berbeda.
Tip terakhir:
X_train_transformed = model.fit_transform(X_train)
sama dengan:,X_train_transformed = model.fit(X_train).transform(X_train)
tetapi yang pertama lebih cepat.Perhatikan bahwa yang saya sebut "model" biasanya adalah scaler, trafo tfidf, vectorizer jenis lain, tokenizer ...
sumber