In der sklearn-python-Toolbox gibt es zwei Funktionen transform
und fit_transform
ungefähr sklearn.decomposition.RandomizedPCA
. Die Beschreibung von zwei Funktionen ist wie folgt
Aber was ist der Unterschied zwischen ihnen?
python
python-2.7
scikit-learn
tqjustc
quelle
quelle
est.fit_transform(X)
ist immer gleichbedeutend mitest.fit(X).transform(X)
, aber normalerweise schneller.Antworten:
Hier ist der Unterschied, dass Sie pca.transform nur verwenden können, wenn Sie bereits PCA auf einer Matrix berechnet haben
Wenn Sie verwenden möchten, müssen
.transform
Sie Ihrem PC die Transformationsregel beibringenInsbesondere wendet die PCA-Transformation die mit der PCA-Zerlegung der Matrix X erhaltene Basisänderung auf die Matrix Z an.
quelle
fit_transform
ist die Kombination von zwei Funktionenfit
undtransform
?In der Scikit-Learn Estimator-API ,
fit()
: Wird zum Generieren von Lernmodellparametern aus Trainingsdaten verwendettransform()
: Aus derfit()
Methode generierte Parameter , die auf das Modell angewendet werden, um einen transformierten Datensatz zu generieren.fit_transform()
: Kombination vonfit()
undtransform()
API auf demselben DatensatzKasse Kapitel-4 aus diesem Buch und Antwort von Stackexchange für mehr Klarheit
quelle
Diese Methoden werden verwendet, um die Skalierung bestimmter Daten zu zentrieren / zu kennzeichnen. Grundsätzlich hilft es, die Daten innerhalb eines bestimmten Bereichs zu normalisieren
Hierfür verwenden wir die Z-Score-Methode.
Wir machen das am Trainingsdatensatz.
1. Fit (): Die Methode berechnet die Parameter μ und σ und speichert sie als interne Objekte.
2. Transform (): Die Methode, die diese berechneten Parameter verwendet, wendet die Transformation auf einen bestimmten Datensatz an.
3. Fit_transform (): Verbindet die Methode fit () und transform () zur Transformation des Datasets.
Code-Snippet für Feature Scaling / Standardization (nach train_test_split).
Wir wenden dieselbe (Trainingssatz dieselben zwei Parameter μ und σ (Werte)) Parametertransformation auf unseren Testsatz an.
quelle
Allgemeiner Unterschied zwischen den Methoden:
Sowohl fit_transform als auch transform geben dieselbe Document-Term-Matrix zurück.
Quelle
quelle
Hier der grundlegende Unterschied zwischen
.fit()
&.fit_transform()
:.passen():
wird im überwachten Lernen mit zwei Objekten / Parametern (x, y) verwendet, um das Modell anzupassen und das Modell zum Laufen zu bringen, wobei wir wissen, was wir vorhersagen werden
.fit_transform ():
wird beim unbeaufsichtigten Lernen mit einem Objekt / Parameter (x) verwendet, bei dem wir nicht wissen, was wir vorhersagen werden.
quelle
Für Laien bedeutet fit_transform, eine Berechnung durchzuführen und dann eine Transformation durchzuführen (z. B. die Mittelwerte von Spalten aus einigen Daten zu berechnen und dann die fehlenden Werte zu ersetzen). Für das Trainingsset müssen Sie also sowohl die Berechnung berechnen als auch durchführen.
Beim Testen des Satzes wendet das maschinelle Lernen eine Vorhersage an, die auf dem basiert, was während des Trainingssatzes gelernt wurde, und muss daher nicht berechnet werden, sondern führt lediglich die Transformation durch.
quelle
Warum und wann jeweils verwenden:
Alle Antworten sind recht gut, aber ich möchte betonen, warum und wann jede Methode verwendet wird.
fit (), transform (), fit_transform ()
Normalerweise haben wir ein überwachtes Lernproblem mit (X, y) als Out-Datensatz und teilen es in Trainingsdaten und Testdaten auf:
Stellen Sie sich vor, wir passen einen Tokenizer an. Wenn wir X anpassen, fügen wir Testdaten in den Tokenizer ein, aber ich habe diesen Fehler oft gesehen!
Das Richtige ist, NUR mit X_train zu passen , da Sie "Ihre zukünftigen Daten" nicht kennen und daher X_test-Daten nicht zum Anpassen verwenden können!
Dann können Sie Ihre Testdaten transformieren, aber separat gibt es deshalb verschiedene Methoden.
Letzter Tipp:
X_train_transformed = model.fit_transform(X_train)
entspricht:,X_train_transformed = model.fit(X_train).transform(X_train)
aber der erste ist schneller.Beachten Sie, dass das, was ich "Modell" nenne, normalerweise ein Skalierer, ein tfidf-Transformator, eine andere Art von Vektorisierer, ein Tokenizer ist ...
quelle