さて、今回は分類(Classification)に関して学習したことをまとめてみます。

ロジスティック回帰 (Logistic Regression)

予測値 y を0.5以上を1とし、0.5未満を0とすることで分類を行います。線形回帰では目的関数の範囲が定まっておらず、分類することが出来ないため、ロジスティック回帰を使います。

ロジスティック関数 (Logistic Function)あるいは、シグモイド関数 (Sigmoid Function)

シグモイド関数(別名:ロジスティック関数) g(z) は以下の様な関数です。

g(z)=11+ez

ロジスティック回帰における仮説 hθ(x) はシグモイド関数 g(z) に予測変数 x のパラメーター  z=θTx を代入します。

hθ(x)=11+eθTx

画像引用: Machine Learning - Coursera

hθ(x)>0.5 なら y=1

hθ(x)0.5 なら y=0

この様に分類判定が行えます。

ロジスティック回帰の目的関数と最急降下法

ロジスティック回帰の目的関数を求める時、対数 log を利用します。

y=1 なら J(θ)=log(hθ(x))

y=0 なら J(θ)=log(1hθ(x))

これをまとめると目的関数は以下の様になります。

J(θ)=1m[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

目的関数を最急降下法に代入すると以下の様になります。

θj:θjαi=1m(hθ(x(i))y(i))xj(i)

基本式は単回帰・重回帰の時と同様です。

ロジスティック回帰の多クラス分類

応用変数 y を複数設定する事で多クラス分類(Multiclass Classification)する事が出来ます。

画像引用: Machine Learning - Coursera

One-vs-all という手法を使います。図をみるとわかり易いのですが、多クラスを仮の2クラスに分割して分類する手法です。

目的変数はどの様になるのでしょうか?

応用変数 y1, y2, y3

に対し、目的変数はカテゴリーと同数のモデルが出来ます。

hθ(i)(x)=P(y=i|x;θ)

それぞれのモデルは以上の様に表す事が出来ます。新たな x が与えられた時、 hθ(i)(x) が最大になるカテゴリーに分類されます。

では。

参考にさせていただきました

Coursera Machine Learning (3): ロジスティック回帰、正則化 - Qiita