Зачем нам нужно подбирать модель снова, чтобы набрать очки? - PullRequest
1 голос
/ 08 апреля 2020

Я тестирую встроенные методы для выбора функций.

Я понимаю (может быть, я неправильно понимаю), что с помощью встроенных методов мы можем получить лучшие функции (в зависимости от важности функций) при обучении модели.

Это так, я хочу получить оценку обученной модели (которая обучалась выбирать функции).

Я проверяю это на проблеме классификации с помощью метода Лассо.

Когда я пытаюсь получить результат, я получаю сообщение об ошибке, что мне нужно снова подогнать модель.

  1. Зачем мне это нужно (кажется, что модель бесполезна, если модель было установлено при выборе функции?)
  2. Почему мы не можем сделать это (выбрать функции и получить оценку модели) за один снимок?
  3. Почему, если мы используем встроенный метод, почему нам нужно сделать это в 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.

1 Ответ

1 голос
/ 08 апреля 2020

Установленный оценщик возвращается как selection.estimator_ (см. документы ); Итак, после установки selection, вы можете просто сделать:

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