ロジスティック回帰


訓練データ設定

訓練データの生成モデル

\( \begin{align} f'(\boldsymbol{x}) &= \boldsymbol{w}' \cdot \boldsymbol{\phi}' (\boldsymbol{x}) \\ &= \sum_{i = 0}^{2} w'_i \phi' _i (\boldsymbol{x}) \\ y_{data} &= \operatorname{sgn} \left(f'(\boldsymbol{x}_{data})\right) \end{align} \)
\( \begin{align} D &= \{(\boldsymbol{x}_{data}^{(i)}, y_{data}^{(i)})\}_{i=0, \cdots, N-1} \\ \boldsymbol{w}' &= (w'_0, w'_1, w'_2) \\ \boldsymbol{x} &= (x_1, x_2) \\ \boldsymbol{\phi}'(\boldsymbol{x}) &= (1, x_1, x_2) \\ \end{align} \)
訓練データモデルの重み$\boldsymbol{w}'$:
$w'_0$: $w'_1$: $w'_2$:
訓練データの個数$N$:

csvファイル(1列目:x座標, 2列目y座標, 3列目: クラス(正例:1/負例:0), #:コメント行)からデータを読み込み


学習パラメータ設定

学習モデル

\( \begin{align} f(\boldsymbol{x}) &= \boldsymbol{w} \cdot \boldsymbol{\phi} (\boldsymbol{x}) \\ &= \sum_{i = 0}^{2} w_i \phi _i (\boldsymbol{x}) \\ h &= sigmoid \left(f(\boldsymbol{x})\right) \\ y &= \operatorname{sgn} \left(f(\boldsymbol{x})\right) \\ \end{align} \)
\( \begin{align} \boldsymbol{w} &= (w_0, w_1, w_2) \\ \boldsymbol{x} &= (x_1, x_2) \\ \boldsymbol{\phi}(\boldsymbol{x}) &= (1, x_1, x_2) \\ sigmoid(x) &= \frac{1}{1 + \exp (-x)} \end{align} \)

更新式

\( \boldsymbol{w} \leftarrow \boldsymbol{w} + \eta (y_{data}^{(i)} - h(\boldsymbol{x}_{data}^{(i)}))\boldsymbol{\phi}(\boldsymbol{x}_{data}^{(i)}) \)

スケジューリング

\(N\)回の更新ごとに
\( \eta \leftarrow \alpha\eta \)

評価

\( N_{error} = \sum_{i=0} ^ {N - 1} 1[y_{data}^{(i)} \neq y(x_{data}^{(i)})] \)
学習モデルの重みの初期値$\boldsymbol{w}_{init}$:
$w_0$: $w_1$: $w_2$:
学習率$\eta$:
スケジューリングファクタ$\alpha$:
学習回数$T$:

訓練データ設定

クリック時の訓練データラベル(shiftキーでも切り替え可):
正例 負例

学習結果