web-dev-qa-db-ja.com

sklearn "RidgeClassifier"は何をしますか?

sklearn.linear_modelの-​​RidgeClassifierLogisticRegressionの違いを理解しようとしています。ドキュメントにそれが見つかりませんでした。

LogisticRegressionが何をするのかはよく理解していると思います。係数を計算してhalf of sum of squares of the coefficients + C times the binary cross-entropy lossを最小化するインターセプトを行います。Cは正則化パラメーターです。私は最初からナイーブな実装をチェックしましたが、結果は一致しています。

RidgeClassifierの結果が異なり、係数と切片がそこでどのように計算されるのかわかりませんでしたか? Githubのコードを見ると、それを解くほどの経験はありません。

私が質問している理由は、RidgeClassifierの結果が気に入っているためです。これにより、問題が少し一般化します。しかし、それを使用する前に、少なくともそれがどこから来るのかを考えたいと思います。

助けてくれてありがとう。

9
Peter Franek

RidgeClassifier()LogisticRegression() と比較して動作が異なります=l2ペナルティ。 RidgeClassifier()の損失関数はクロスエントロピーではありません。

RidgeClassifier()は、次の方法で Ridge() 回帰モデルを使用して分類子を作成します。

簡単のためにバイナリ分類を考えてみましょう。

  1. 属しているクラスに基づいて、_+1_または_-1_の値を持つターゲット変数を生成します。

  2. ターゲット変数を予測するRidge()回帰モデル(回帰モデル)を作成します。損失関数は_RMSE + l2 penality_です

  3. Ridge()回帰の予測値( decision_function() functionに基づいて計算)が0より大きい場合、ポジティブクラス、またはネガティブクラスとして予測します。

マルチクラス分類の場合:

  1. LabelBinarizer() を使用して多出力回帰シナリオを作成し、独立したRidge()回帰モデルをトレーニングします。クラスごとに1つ(One-Vs-Restモデリング)。

  2. 各クラスのRidge()回帰モデル(各クラスの実数)から予測を取得し、argmaxを使用してクラスを予測します。

6
Venkatachalam