回答:
ロジスティック回帰は、何よりもまず回帰です。決定ルールを追加することで分類器になります。後退する例を挙げます。つまり、データを取得してモデルをあてはめる代わりに、モデルから始めて、これが本当に回帰問題であるかを示します。
ロジスティック回帰では、イベントが発生する対数オッズ、つまりロジットをモデル化しています。これは連続的な量です。イベントが発生する確率がP (A )の場合、オッズは次のとおりです。
したがって、ログオッズは次のとおりです。
線形回帰と同様に、これを係数と予測子の線形結合でモデル化します。
人に白髪があるかどうかのモデルが与えられたと想像してください。私たちのモデルでは、唯一の予測因子として年齢を使用しています。ここで、イベントA =人は白髪です:
白髪の対数オッズ= -10 + 0.25 *年齢
...回帰!Pythonコードとプロットは次のとおりです。
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
x = np.linspace(0, 100, 100)
def log_odds(x):
return -10 + .25 * x
plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")
これがコードです:
plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")
ロジスティック回帰は、より現実的な例でも分類子としてうまく機能しますが、分類子になる前に、それは回帰手法でなければなりません!
簡潔な答え
はい、ロジスティック回帰は回帰アルゴリズムであり、継続的な結果、つまりイベントの確率を予測します。バイナリ分類子として使用するのは、結果の解釈によるものです。
細部
ロジスティック回帰は、一般化線形回帰モデルの一種です。
通常の線形回帰モデルでは、継続的な結果はy
、予測子とその効果の積の合計としてモデル化されます。
y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e
e
エラーはどこですか。
一般化線形モデルはy
直接モデル化しません。代わりに、変換を使用しての領域y
をすべての実数に拡張します。この変換はリンク関数と呼ばれます。ロジスティック回帰の場合、リンク関数はロジット関数です(通常、以下の注を参照してください)。
ロジット関数は次のように定義されます。
ln(y/(1 + y))
したがって、ロジスティック回帰の形式は次のとおりです。
ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e
どこy
事象の確率です。
バイナリ分類子として使用するのは、結果の解釈によるものです。
注:プロビットはロジスティック回帰に使用されるもう1つのリンク関数ですが、ロジットが最も広く使用されています。
あなたが議論するように、回帰の定義は連続変数を予測しています。ロジスティック回帰はバイナリ分類器です。ロジスティック回帰は、通常の回帰アプローチの出力にロジット関数を適用したものです。Logit関数は(-inf、+ inf)を[0,1]に変更します。その名前を維持しているのは歴史的な理由だけだと思います。
「画像を分類するために回帰を行いました。特に、ロジスティック回帰を使用しました。」間違っている。