0

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

ロジスティック回帰分類子のドキュメントには、1 対すべての戦略を使用していると記載されているため、どのような要因がパフォーマンスの違いを説明できるのか疑問に思っています。私の one-vs-rest LR 分類器は、LR 分類器が単独で行うよりも、クラスの 1 つを過剰に予測しているようです。

4

1 に答える 1

1

推測ですが、おそらく「誰も投票しない」と、多くの小さな浮動小数点値が得られ、LR を使用するとゼロにアンダーフローしてしまいます。したがって、最も自信がある/最も近い人を選ぶ代わりに、タイブレーク ゼロに基づいて選ぶことになります。違いの例はこちらをご覧ください。

于 2014-04-28T04:31:53.380 に答える