Я вызываю методы fit_transform() и transform() для объекта Pipeline, но Python выдает ошибку AttributeError всякий раз, когда я пытаюсь это сделать. Вот что я пытаюсь запустить с импортом. (Примечание: разделение поездов и тестов уже выполнено)
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
pipe = Pipeline([('mean_impute', SimpleImputer()),
('norm', StandardScaler()),
('sklearn_lm', LinearRegression())])
pipe.fit_transform(x_train, y_train) #<-- error here
x_transform = pipe.transform(x_test) #<-- and here if previous line is absent
Текст ошибки следующий:
AttributeError: This 'Pipeline' has no attribute 'fit_transform'
Что пошло не так? Я уверен, что это что-то простое.
x_train и y_train, чтобы убедиться, что они одинаковы и что у них обоих есть заголовки.sci-kit learn@Джон - у меня версия 1.3.0






На этом веб-сайте говорится, что этот метод действителен только в том случае, если окончательная оценка либо реализует fit_transform, либо подходит и преобразуется. Я не знаю, что такое окончательная оценка, но это может быть вашей проблемой (я знаю, что это не очень помогло, но я попробовал).
В документации для sklearn.pipeline.Pipeline.fit_transform указано, что он «[o]действителен только в том случае, если окончательный оценщик реализует либо fit_transform, либо fit и transform». Формулировка может быть немного двусмысленной, но она означает две возможности: (i) окончательная оценка реализует fit_transform или (ii) окончательная оценка реализует fit и transform.
Ваша окончательная оценка — sklearn.linear_model.LinearRegrade, которая реализует fit, но не transform. Вот почему возникает ошибка.
Какую версию склеарна вы используете?