Назад к вопросам
JuniorТеорияЧасто
Что произойдёт в последней строке этой программы?
import pickle
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
X, y = load_breast_cancer(return_X_y=True)
pipe = Pipeline([("scaler", StandardScaler()), ("model", LogisticRegression())])
pipe.fit(X, y)
model = pickle.loads(pickle.dumps(pipe.named_steps["model"]))
y_pred = model.predict(X)Вернёт метки без ошибки, но модель получит немасштабированные признаки, и большинство меток неверны
- Ждать тех же меток, что у конвейера: средние масштабирования хранит шаг
scaler, поэтому модель получает исходные признаки и здесь относит каждую строку к классу0. - Ждать исключения: шаг модели обучен и сериализуется без проблем, поэтому ничто не предупреждает, и ошибку показывает только качество на отложенных данных.
- Какой объект вы сохраните, чтобы сервис мог вызывать
predictна исходных строках признаков? - Как заметить эту ошибку после выкатки, если исключение так и не возникает?