我注意到,将SK-learn的LogisticRegression分类器与下面的one-vs-rest分类器结合使用时,我的f分数略低,而不是单独使用它来进行多类分类。
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以来,我想知道哪些因素可以解释性能上的差异。我的one-vs-rest LR分类器似乎比LR分类器本身过度预测其中一个类。
答案 0 :(得分:1)
只是猜测,但可能在“没有人投票”时你会获得许多微弱的浮动点值,而对于LR,你最终会下降到零。因此,不是选择最有信心/最接近的人,而是最终根据打破零线进行挑选。查看差异的示例here。