В наборе инструментов sklearn-python есть две функции transform
и fit_transform
about sklearn.decomposition.RandomizedPCA
. Описание двух функций следующее
Но в чем разница между ними?
python
python-2.7
scikit-learn
tqjustc
источник
источник
est.fit_transform(X)
всегда эквивалентноest.fit(X).transform(X)
, но обычно быстрее.Ответы:
Здесь разница: вы можете использовать pca.transform, только если вы уже вычислили PCA на матрице.
если вы хотите использовать,
.transform
вам нужно научить правилу трансформации ваш ПКВ частности, преобразование PCA применяет изменение базиса, полученное с помощью разложения PCA матрицы X, к матрице Z.
источник
fit_transform
это комбинация двух функцийfit
иtransform
?В api оценки scikit-learn ,
fit()
: используется для создания параметров модели обучения из данных обученияtransform()
: параметры, созданные изfit()
метода, применяемые к модели для создания преобразованного набора данных.fit_transform()
: комбинацияfit()
иtransform()
api в одном наборе данныхОзнакомьтесь с главой 4 из этой книги и ответом от stackexchange для большей ясности.
источник
Эти методы используются для центрирования / масштабирования заданных данных. Это в основном помогает нормализовать данные в определенном диапазоне.
Для этого мы используем метод Z-score.
Мы делаем это на обучающем наборе данных.
1. Fit (): метод вычисляет параметры μ и σ и сохраняет их как внутренние объекты.
2. Transform (): метод, использующий эти вычисленные параметры, применяет преобразование к определенному набору данных.
3. Fit_transform (): объединяет методы fit () и transform () для преобразования набора данных.
Фрагмент кода для масштабирования / стандартизации функций (после train_test_split).
Мы применяем такое же преобразование параметров (обучающий набор, два параметра μ и σ (значения)) к нашему набору тестирования.
источник
Общее различие между методами:
Как fit_transform, так и transform возвращают одну и ту же матрицу Document-term.
Источник
источник
Вот основная разница между
.fit()
&.fit_transform()
:.поместиться():
используется в контролируемом обучении с двумя объектами / параметрами (x, y) для соответствия модели и запуска модели, где мы знаем, что мы собираемся предсказать
.fit_transform ():
используется в неконтролируемом обучении с одним объектом / параметром (x), где мы не знаем, что мы собираемся предсказать.
источник
С точки зрения непрофессионала, fit_transform означает выполнение некоторых вычислений, а затем преобразование (скажем, вычисление средних значений столбцов на основе некоторых данных с последующей заменой отсутствующих значений). Итак, для обучающего набора вам нужно как рассчитать, так и выполнить преобразование.
Но для набора для тестирования машинное обучение применяет прогнозирование на основе того, что было изучено во время набора для обучения, поэтому ему не нужно вычислять, оно просто выполняет преобразование.
источник
Зачем и когда использовать каждый из них:
Все ответы довольно хороши, но я бы сделал акцент на том, ПОЧЕМУ и КОГДА использовать каждый метод.
fit (), преобразование (), fit_transform ()
Обычно у нас есть проблема контролируемого обучения с (X, y) в качестве набора данных, и мы разбиваем его на данные обучения и данные тестирования:
Представьте, что мы устанавливаем токенизатор, если мы подбираем X, мы включаем данные тестирования в токенизатор, но я видел эту ошибку много раз!
Правильно - соответствовать ТОЛЬКО с X_train , потому что вы не знаете «ваши будущие данные», поэтому вы не можете использовать данные X_test для чего-либо!
Затем вы можете преобразовать свои тестовые данные, но по отдельности, поэтому существуют разные методы.
Последний совет:
X_train_transformed = model.fit_transform(X_train)
эквивалентен:,X_train_transformed = model.fit(X_train).transform(X_train)
но первый быстрее.Обратите внимание, что то, что я называю «моделью», обычно будет масштабатором, преобразователем tfidf, векторизатором другого типа, токенизатором ...
источник