Я тестирую встроенные методы для выбора функций.
Я понимаю (может быть, я неправильно понимаю), что с помощью встроенных методов мы можем получить лучшие функции (в зависимости от важности функций) при обучении модели.
Это так, я хочу получить оценку обученной модели (которая обучалась выбирать функции).
Я проверяю это на проблеме классификации с помощью метода Лассо.
Когда я пытаюсь получить результат, я получаю сообщение об ошибке, что мне нужно снова подогнать модель.
- Зачем мне это нужно (кажется, что модель бесполезна, если модель было установлено при выборе функции?)
- Почему мы не можем сделать это (выбрать функции и получить оценку модели) за один снимок?
Почему, если мы используем встроенный метод, почему нам нужно сделать это в 2 этапа? почему мы не можем обучить модель, пока выбираем лучшие функции в одной подгонке?
from sklearn.linear_model import Lasso, LogisticRegression
from sklearn.feature_selection import SelectFromModel
estimator = LogisticRegression(C=1, penalty='l1', solver='liblinear')
selection = SelectFromModel(estimator)
selection.fit(x_train, y_train)
print(estimator.score(x_test, y_test))
Ошибка:
sklearn.exceptions.NotFittedError: This LogisticRegression instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.