「ラビットチャレンジ」 提出レポート
##1.ロジスティク回帰モデルの概要
■ 分類問題(クラス分類)
● ある入力(数値)からクラスに分類する問題
■ 分類で扱うデータ
● 入力(各要素を説明変数または特徴量と呼ぶ)
$${ x=(x_1,x_2,・・・,x_m)^T \in R^m }$$
● 出力(目的変数)
{ y \in \left\{0,1\right\} }
■ ロジスティック線形回帰モデル
● 分類問題を解くための教師あり機械学習モデル(教師データから学習)
● 入力と $m$ 次元パラメータの線形結合をシグモイド関数に入力
● 出力は $y=1$ になる確率の値になる
■ シグモイド関数
● 入力は実数・出力は必ず$0 \sim 1$の値
● (クラス1に分類される)確率を表現
● 単調増加関数
\sigma(x)=\dfrac{1}{1+ \rm{exp}(\it{-ax}\rm{)}}
● パラメータが変わるとシグモイド関数の形が変わる
■ シグモイド関数の性質
● シグモイド関数の微分は、シグモイド関数自身で表現することが可能
● 尤度関数の微分を行う際にこの事実を利用すると計算が容易
● シグモイド関数の出力を$Y=1$になる確率に対応させる
● シグモイド関数の値が $0.5$以上であれば、分類は $1$、そうでなければ 分類は $0$とする。
##2.最尤推定
■ ロジスティクス回帰モデルでは、ベルヌーイ分布を使用する。
■ 尤度関数とは:
● データは固定し、パラメータを変化させる
● 尤度関数を最大化するようなパラメータを選ぶ推定方法を最尤推定という
● 尤度関数はパラメータのみに依存する関数
■ 尤度関数を最大とするパラメータを探す(推定)
● 対数を取ると、微分の計算が簡単
● 対数尤度関数が最大になる点と尤度関数が最大になる点は同じ
● 「尤度関数にマイナスをかけたものを最小化」、「最小二乗法の最小化」と合わせる
##3.勾配降下法
■ 【定義】
勾配降下法はコスト関数を最小にするためにパラメータを繰り返し操作して最適なパラメータを算出します。パラメータベクトルについて誤差関数の局所的な勾配を測定し、降下の方向に進めていきます。勾配が0になればコスト関数を最小にするパラメータを見つけることができたことになります。
■ ロジスティック回帰モデルでは、対数尤度関数をパラメータで微分して0になる値を求めることが困難なので、勾配降下法の使用が必要。
■ 勾配降下法では、一回のパラメータ更新に関して、全ての入力データが必要というデメリットがある。それを解決案として確率的勾配降下法を使用する
##4.確率的勾配降下法
■ データを一つずつランダムに(「確率的」)に選んでパラメータを更新する
■ 勾配降下法でパラメータを1回更新するのと同じ計算量で、パラメータを$n$回更新できるので効率よく最適な解を探索可能
##5.モデル評価
■ 【混同行列】
■ 再現率(Recall)
本当に陽性であるケースの内、何**%を陽性と判定できたかを示します。
$$\frac{TP}{TP+FN}$$
■ 適合率 (Prescision)
陽性であると予測した内の何%が当たっていたかを示します。
$$\frac{TP}{TP + FP}$$
■ F 値 (F-Measure)
再現率と適合率の調和平均.
$$\frac{2\mathrm{Recall}\cdot\mathrm{Precision}}{\mathrm{Recall}+\mathrm{Precision}}$$
##6.ハンズオン
●【設定】タイタニックの乗客データを利用し、ロジスティクス回帰モデルを作成
●【課題】**年齢が30歳で男の乗客は生き残れるか?
###0. データ表示
###1. ロジスティック回帰
####不要なデータの削除・欠損値の補完
####実装(1変数のチケット価格から生死を判別)
**【考察】**上記の予測結果より、チケット価格が61の場合、死者と判断した(死者予測確率は0.5034である)
####実装(2変数から生死を判別)
● 年齢が30歳で男の乗客は生存者か死者かを判別(変数は年齢と性別)
**【考察】**上のグラフを見ると、女性の方が生存確率が高く見られる。
● ロジスティクス回帰モデルの導入
**【結果】**30歳で男の乗客は死亡と判断した(死者の判断確率は0.8066である)
● 決定境界をプロット
###2. モデル評価
混同行列とクロスバリデーション
**【考察】**1変数より、2変数では判別確率が高くなる。
**【考察】**男性に対して、年齢が上がれば、生存確率が下がっていく。一方で、女性の場合、年齢が大きいほど生存確率が高くなっている。
##7.演習問題関連
###Momentum法
Momentum法は、パラメータを更新する際に、学習速度を早めるために慣性項(Momentum)を追加した手法です。以下の式のようにパラメータの更新を行います。
$${\theta_{t + 1} \gets \theta_{t} - \eta \nabla_{\theta_t}L_{\theta_t} + \alpha(\theta_{t} - \theta_{t-1}) }$$
このときの $\alpha$ は慣性項のパラメータであり、前回の更新量に $\alpha$ 倍して加算することでパラメータの更新をより慣性的なものにするという狙いがあります。
この手法もハイパーパラメータが2つあり、最適化が難しいという問題があります。
##【機械学習】レポート一覧
【ラビットチャレンジ】【機械学習】線形回帰モデル
【ラビットチャレンジ】【機械学習】非線形回帰モデル
【ラビットチャレンジ】【機械学習】主成分分析
【ラビットチャレンジ】【機械学習】アルゴリズム
【ラビットチャレンジ】【機械学習】サポートベクターマシン