Was und warum hinter fit_transform() vs transform() in scikit-learn !

Blog

Scikit-learn ist die nützlichste Bibliothek für maschinelles Lernen in der Programmiersprache Python. Es verfügt über viele Tools zum Erstellen eines Modells für maschinelles Lernen und ist auch recht einfach zu bedienen. Dennoch haben wir manchmal Schwierigkeiten, einige der sehr einfachen Methoden zu verstehen, die wir im Allgemeinen immer beim Erstellen unseres Modells für maschinelles Lernen verwenden.



Eine solche Methode ist fit_transform() und noch einer ist verwandeln() . Beide sind die Methoden der Klasse **sklearn.preprocessing.StandardScaler() **und werden fast zusammen beim Skalieren oder Standardisieren unserer Trainings- und Testdaten verwendet.

Bild für Beitrag



Foto von Tekton aus Unspalsh

Die Motivation, diesen Blog zu schreiben, kam von mehreren Fragen, die in einem Online-Kurs zu Machine Learning zu diesen Methoden gepostet wurden.



Die Frage ist:

Warum verwenden wir fit_transform() für Trainingsdaten, aber transform() für Testdaten?

Wir alle wissen, dass wir die Methode fit_transform() für unsere Trainingsdaten und die Methode transform() für unsere Testdaten aufrufen. Aber die eigentliche Frage ist, warum wir das tun? Mein Motiv ist es, diesen einfachen, aber verwirrenden Punkt so einfach wie möglich zu erklären. Also lasst uns anfangen!

Angenommen, wir erstellen ein k-Nearest Neighbor-Modell und müssen unsere Features skalieren. Die gängigste Methode zum Skalieren der Funktionen ist die StandardScaler-Klasse von scikit-learn.

Notiz:

  1. Bei der Datenstandardisierung werden die Attribute neu skaliert, sodass sie den Mittelwert 0 und die Varianz 1 haben.
  2. Das ultimative Ziel der Standardisierung besteht darin, alle Merkmale auf eine gemeinsame Skala zu bringen, ohne die Unterschiede im Bereich der Werte zu verzerren.
  3. In sklearn.preprocessing.StandardScaler() erfolgt das Zentrieren und Skalieren unabhängig von jedem Feature.

Die magische Formel, die die Standardisierung durchführt:

Bild für Beitrag

Lassen Sie uns nun tief in das Konzept eintauchen.

fit_transform()

fit_transform() wird für die Trainingsdaten verwendet, damit wir die Trainingsdaten skalieren und auch die Skalierungsparameter dieser Daten lernen können. Hier lernt das von uns erstellte Modell den Mittelwert und die Varianz der Merkmale des Trainingssatzes. Diese gelernten Parameter werden dann verwendet, um unsere Testdaten zu skalieren.

Also, was passiert hier eigentlich! 🤔

#python #scikit-learn #data-science #machine-lear

zudatascience.com

Was und warum hinter fit_transform() vs transform() in scikit-learn !

Scikit-learn ist die nützlichste Bibliothek für maschinelles Lernen in der Programmiersprache Python. Es verfügt über viele Tools zum Erstellen eines Modells für maschinelles Lernen und ist auch recht einfach zu bedienen. Dennoch haben wir manchmal Schwierigkeiten, einige der sehr einfachen Methoden zu verstehen, die wir im Allgemeinen immer beim Erstellen unseres Modells für maschinelles Lernen verwenden.