
163
163
11.7 パラメータを推定する
11.7
パラメータを推定する
線形回帰と異なり、ロジスティック回帰には閉形式の解がないので、初期の解を推
量して、それを繰り返し改善することで解きます。
普通の目標は、最尤推定(
MLE
、
maximum-likelihood estimate
)、すなわち、デー
タの尤度を最大化するパラメータ集合を見出すことです。例えば、次のようなデータ
があったとします。
>>> y = np.array([0, 1, 0, 1])
>>> x1 = np.array([0, 0, 0, 1])
>>> x2 = np.array([0, 1, 1, 1])
最初の推量を、β
0
=−
1.5,
β
1
=
2.8,
β
2
=
1.1
で始めます。
>>> beta = [-1.5, 2.8, 1.1]
各行について
log_o
を計算します。
>>> log_o = beta[0] + beta[1] * x1 + beta[2] * x2
[-1.5 -0.4 -0.4 2.4]
対数オッズから確率に変換します。
>>> o = np.exp(log_o)
[ 0.223 0.670 0.670 11.02 ]
>>> p = o / (o+1)
[ 0.182 0.401 0.401 0.916 ]
log_o
が
0
より大きいなら、
o
は
1
より大きく、
p
は
0.5
より大きいことに気を付
けてください。
結果の尤度は
y==1
のときに
p
で、
y==0
のときに
1-p
です。例えば、男の子の確率が
0.8
で結果が男の子なら、尤度は ...