Почему мультиклассовая логистическая регрессия дает другие результаты, чем выбор наиболее вероятной метки в классификаторе OvR?

Я заметил, что мои f-показатели немного ниже при использовании классификатора LogisticRegression SK-learn в сочетании со следующим классификатором «один против остальных», чем при использовании его отдельно для классификации нескольких классов.

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 ])]

Поскольку в документации классификатора логистической регрессии указано, что он использует -все стратегии, мне интересно, какие факторы могут объяснить разницу в производительности. Мой классификатор LR «один против остальных», кажется, переоценивает один из классов больше, чем классификатор LR сам по себе.


person Nathan Breit    schedule 28.04.2014    source источник
comment
Оценка LR использует некоторую случайность при обучении. Его случайное начальное число может быть задано явно.   -  person Fred Foo    schedule 28.04.2014


Ответы (1)


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

person Raff.Edward    schedule 28.04.2014