Ridge、Lasso、ElasticNetなどの方法を使用した正則化は、線形回帰では非常に一般的です。私は次のことを知りたかったです:これらの方法はロジスティック回帰に適用できますか?その場合、ロジスティック回帰に使用する方法に違いはありますか?これらの方法が適用できない場合、ロジスティック回帰はどのように正規化されますか?
Ridge、Lasso、ElasticNetなどの方法を使用した正則化は、線形回帰では非常に一般的です。私は次のことを知りたかったです:これらの方法はロジスティック回帰に適用できますか?その場合、ロジスティック回帰に使用する方法に違いはありますか?これらの方法が適用できない場合、ロジスティック回帰はどのように正規化されますか?
回答:
はい、回帰と分類の両方を含むすべての線形法で正則化を使用できます。回帰と分類の間にあまり違いはないことを示したいと思います。唯一の違いは損失関数です。
具体的には、線形法には、損失関数、正則化、アルゴリズムの 3つの主要なコンポーネントがあります。損失関数と正則化が最適化形式の問題の目的関数であり、アルゴリズムがそれを解決する方法です(目的関数は凸であるため、この投稿では説明しません)。
損失関数の設定では、回帰ケースと分類ケースの両方で異なる損失を設定できます。たとえば、最小二乗および最小絶対偏差損失を回帰に使用できます。そして、それらの数学表現はおよび。(関数は2つのスカラーで定義され、はグラウンドトゥルース値、は予測値です。) L (Y、Y )= | Y Y
一方、ロジスティック損失とヒンジ損失は分類に使用できます。それらの数学表現はおよびです。(ここで、はのグラウンドトゥルースラベルで、は「スコア」と予測されます。の定義は少し変わっています。コメントセクションを参照してください。)L (Y、Y )= (1 - Y Y )+ Y { - 1 、1 } Y Y
正則化の設定では、L1およびL2の正則化について言及しましたが、他の形式もありますが、この記事では説明しません。
したがって、高レベルでは、線形法は
損失関数を回帰設定からロジスティック損失に置き換えると、正則化でロジスティック回帰が得られます。
たとえば、リッジ回帰では、最適化の問題は
損失関数をロジスティック損失に置き換えると、問題は次のようになります
ここに、L2正則化によるロジスティック回帰があります。
これは、玩具で合成されたバイナリデータセットでどのように見えるかです。左の図は、線形モデル(決定境界)を使用したデータです。右図は目的関数の輪郭です(x軸とy軸は2つのパラメーターの値を表します)。データセットは2つのガウスから生成され、インターセプトなしでロジスティック回帰モデルに適合しているため、右側のサブ図で視覚化できるパラメーターは2つだけです。
青い線は正則化なしのロジスティック回帰であり、黒い線はL2正則化ありのロジスティック回帰です。右図の青と黒の点は、目的関数の最適なパラメーターです。
この実験では、大きなを設定しているため、2つの係数が近いことがわかります。さらに、輪郭から、正則化項が支配的であり、関数全体が2次ボウルのようになっていることがわかります。0
L1正則化の別の例を次に示します。
この実験の目的は、正規化がロジスティック回帰でどのように機能するかを示すことですが、正規化されたモデルの方が良いと主張するのではないことに注意してください。
L1とL2の正則化と、それがロジスティック損失目標にどのように影響するかについてのアニメーションを次に示します。各フレームで、タイトルは正則化タイプとを示し、プロットは目的関数(ロジスティック損失+正則化)コンターです。各フレームで正則化パラメーターを増やします。最適なソリューションはフレームごとに縮小し。
いくつかの表記コメント。とは列ベクトル、はスカラーです。したがって、線形モデル。切片項を含める場合は、データに列としてを追加できます。
回帰設定では、は実数であり、分類設定ではです。
分類設定でのの定義は少し奇妙です。ほとんどの人は予測値を表すためにを使用するため。この場合、は実数ですが、はありません。ロジスティック損失とヒンジ損失の表記を簡略化できるため、この定義を使用します。
また、他の表記システムでは、ロジスティック損失関数の形式が異なることに注意してください。
このコードは、他の回答のこちらにあります。
完全な分離の場合にロジスティック回帰が機能しない理由について直感的な説明はありますか?そして、なぜ正規化を追加すると修正されるのでしょうか?
高次漸近の考慮に基づいてロジスティック回帰に対して最初に提案された収縮/正則化方法は、ファースロジスティック回帰でした... 1970年代。ペナルティ項を尤度に追加すると、 ここで、i(β)=1
glm
R
はい、ロジスティック回帰に適用できます。Rでは、glmnetを使用して、ロジスティック回帰の「二項」である適切なファミリを指定するだけです。データと対処する問題に応じて指定できる他の2つ(毒、多項など)があります。