0

Я заметил, что мои f-баллы немного ниже при использовании классификатора LogisticRegression от SK-learn в сочетании со следующим классификатором one-vs-rest, чем использование его отдельно для классификации нескольких классов.Почему многоклассическая логистическая регрессия дает разные результаты, чем выбор наиболее вероятной метки в классификаторе OvR?

class MyOVRClassifier(sklearn.OneVsRestClassifier): 
    """ 
    This OVR classifier will always choose at least one label, 
    regardless of the probability 
    """ 
    def predict(self, X): 
     probs = self.predict_proba(X)[0] 
     p_max = max(probs) 
     return [tuple([self.classes_[i] for i, p in enumerate(probs) if p == p_max ])] 

С the documentation of the logistic regression classifier states it uses a one-vs-all strategy, я задаюсь вопросом, какие факторы могут объяснить разницу в производительности. Мой классификатор LR с одним vs-отдыхом, по-видимому, слишком предсказывает один из классов больше, чем LR-классификатор делает сам по себе.

+0

Оценщик LR использует некоторую случайность при обучении. Его случайное семя может быть задано явно. –

ответ

1

Просто догадывайтесь, но, вероятно, когда «никто не голосует», вы получаете много оловянных значений с плавающей запятой, а с LR вы попадаете в ноль. Поэтому вместо того, чтобы выбрать самого уверенного/близкого человека, вы в конечном итоге выбираете на основе нуля нуля. См. Пример here отличия.