Понимание разницы между «transform» и «fit_transform» в scikit-learn (sklearn)

В scikit-learn (sklearn) методы «transform» и «fit_transform» обычно используются в контексте преобразования объектов и предварительной обработки.

  • ’transform’: этот метод используется для применения изученного преобразования к новым данным. Он принимает входной набор данных и применяет то же преобразование, которое было получено при предыдущем вызове «fit» или «fit_transform». Важно отметить, что «преобразование» следует применять к новым данным только после того, как модель или преобразователь были адаптированы к обучающим данным.

  • ’fit_transform’: этот метод объединяет этапы подгонки и преобразования в одну операцию. Он изучает преобразование на основе обучающих данных и применяет его к тем же данным за один шаг. Это полезно, если вы хотите выполнить подгонку и преобразование в одной строке кода.

Вот пример, иллюстрирующий использование этих методов:

from sklearn.preprocessing import StandardScaler
# Create an instance of the StandardScaler transformer
scaler = StandardScaler()
# Fit the scaler on the training data and transform it
X_train = scaler.fit_transform(X_train)
# Transform the test data using the learned transformation
X_test = scaler.transform(X_test)

В приведенном выше примере кода мы создаем экземпляр преобразователя StandardScalerи подгоняем его к обучающим данным с помощью метода fit_transform. При этом параметры масштабирования изучаются из обучающих данных и применяются к тем же данным. Затем мы используем метод transform, чтобы применить изученное преобразование к тестовым данным, гарантируя, что одинаковое масштабирование применяется последовательно как к обучающим, так и к тестовым наборам данных.