склеарн перекрестный действительный / перекрестный прогноз - PullRequest
0 голосов
/ 11 июля 2020

Я понимаю, что cross_val_predict / cross_val обучает n моделей вне складок, а затем агрегирует их, чтобы получить окончательный прогноз. Это делается на этапе поезда. Теперь я хочу использовать подобранные модели для предсказания тестовых данных. Я могу использовать для l oop для сбора прогнозов по тестовым данным и их агрегирования, но сначала я хочу спросить, есть ли для этого встроенный метод sklearn?

from sklearn.model_selection import cross_val_predict, train_test_split

diabetes = datasets.load_diabetes()
X = diabetes.data[:150]
y = diabetes.target[:150]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
lasso = linear_model.Lasso()
y_train_hat = cross_val_predict(lasso, X_train, y_train, cv=3)
y_test_hat = do_somthing(lasso, X_test)```

Thanks

1 Ответ

1 голос
/ 11 июля 2020

3 модели из вашего cross_val_predict нигде не сохраняются, поэтому вы не можете делать с ними прогнозы. Вместо cross_validate можно использовать return_estimator=True. У вас по-прежнему останутся три модели, которые вам придется вручную использовать для составления и агрегирования прогнозов. (В принципе, вы могли бы объединить эти модели в ансамблевую модель, например VotingClassifier, но, по крайней мере, на данный момент нет аргумента prefit для предотвращения переоборудования ваших оценок. В Issue 7382 есть некоторые обсуждения и ссылки из есть.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...