Как поменять точность с другим показателем производительности из функции Score () после подгонки модели ML в Pipeline с помощью scikit-learn? - PullRequest
0 голосов
/ 18 сентября 2019

Вот часть моего кода:

def ml_pipeline(self):
    if self.control_panel['ml_pipeline_switch']:
        self.model = make_pipeline(self.preprocessor, self.control_panel['ml_algo'][1])
        self.model.fit(self.X_train, self.y_train)

def ml_pipeline_result(self, show_control_panel_switch=True): 
    if self.control_panel['ml_pipeline_switch']:
        print('Model score (training set): %.3f' % self.model.score(self.X_train, self.y_train))
        print('Model score (test set): %.3f' % self.model.score(self.X_test, self.y_test))

Кажется, score() производит точность.Как я могу поменять точность с другими показателями производительности, такими как F1-macro или recall-macro?Я не смог найти ничего в документе .

1 Ответ

1 голос
/ 19 сентября 2019

Короткий ответ на ваш вопрос - нет, если только вы не взломаете свой путь и не переопределите / не переопределите функции scikit-learn.

Когда вы используете pipe.score(), он вызывает метод Score из классификатора.это в конце конвейера.

Теперь, что происходит под капотом, так это то, что все классификаторы в scikit-learn основаны на классе ClassifierMixin, для которого .score() определяется через accuracy_score, и это жестко закодировано (см. здесь ).

...