ラビットチャレンジ【機械学習】~ロジスティクス回帰モデル~

概要

機械学習モデルの中でも分類問題(クラス分類)ができるロジスティクス回帰モデルを学んだ

この章では以下の項目を学んだ

・分類問題

・分類問題へのアプローチ

ロジスティクス回帰モデルの基礎

最尤推定

・パラメータ推定(勾配降下法、確率的勾配降下法)

・分類の評価方法

タイタニックデータにおけるハンズオン

・勾配降下法のパラメータを更新手計算(Appendix)

分類問題

・ある入力データからクラスを分類する問題(入力データ:年齢、性別、年収 出力データ:既婚or未婚)

・入力はm次元ベクトル

・出力は0 or 1

分類問題へのアプローチ

識別的アプローチ

xがクラスCkに属する確率を直接モデル化


p(C_{k}|x)

生成的アプローチ

p(Ck)とp(x|Ck)をモデル化し、その後にベイズの定理を用いてp(Ck|x)を求める

f:id:Maruring:20210715110400p:plain

ロジスティクス回帰モデルの基礎

・分類問題を解くための教師あり機械学習モデル

・入力データとパラメータを線形結合してシグモイド関数に入力

・出力は1になる確率

シグモイド関数

・入力は実数 出力は必ず0~1の値

・(クラス1に分類される)確率を表現

・単調増加関数

シグモイド関数微分シグモイド関数自身で表現することができる

f:id:Maruring:20210715111101p:plain

f:id:Maruring:20210715111117p:plain

シグモイド関数微分

数式での表記(w0,w1がパラメータ)


P(Y=1|x)=\sigma(w_{1}x_{1} + w_{0})
データYは確率が0.5以上であれば1・未満なら0と予測
最尤推定

データからそのデータを生成したであろう尤もらしい分布(パラメータ)を推定する

ロジスティクス回帰モデルでは尤度関数(尤もらしさを数値化したもの)を最大にすることを目標とする

対数をとると計算が楽になるので尤度関数にマイナスをかけたものを最小化する

f:id:Maruring:20210715112837p:plain

尤度関数

 

パラメータ推定(勾配降下法、確率的勾配降下法)

ロジスティクス回帰モデルでは対数尤度関数をパラメータで微分して0になる値を求める必要があるが、解析的にこの値を求めることは不可能である

そこでパラメータを初期値(ランダム)から少しずつ変化させていき、その地点におけるパラメータの傾きを確認して、その傾きからパラメータをさらに更新していく勾配降下法という学習手法をとる

f:id:Maruring:20210715113348p:plain

勾配降下法

 

f:id:Maruring:20210715113517p:plain

対数尤度関数を係数とバイアスに関して微分

 

しかし、勾配降下法では以下のような問題が発生する

・データ全て入れて学習するためメモリ不足になる

・計算に膨大な時間を要する

・鞍点や局所最適解に陥りやすい

上記の問題を解決するために確率的勾配降下法が用いられる

・データを1つずつランダムに選んでパラメータを更新

・計算量が少なく時間も短くパラメータを更新できる


w(k+1)=w^{k} + \eta(y_{i}-p_{i})x_{i}
分類の評価方法

ロジスティクス回帰モデルの性能を測定するには以下の混合行列を活用した指標が使用される

・TP(True Positive) - 正しくpositiveと判定

・FP(False Positive) - 間違えてpositiveと判定

・FN(False Negative) - 間違えてnegativeと判定

・TN(True Negative) - 正しくnegativeと判定

f:id:Maruring:20210715115445p:plain

 

再現率(Recall)

・本物を本当と予測できる割合

・FPが多少多くても抜け漏れが少なくてもいい時に使用

・病気の診断で病気の時に病気と判断できるか


TP\over{TP+FN}

適合率(Precision)

・本当と予測した中で本当である割合

・スパムメームor重要なメールかを判断するときに使用

スパムメールを重要なメールと判断しても自分で処理する


TP\over{TP+FP}

F値

・再現率と適合率の調和平均 ⇒ 両者のバランスを示す

・両者が共に高ければトレードオフの関係になる

タイタニックデータにおけるハンズオン

タイタニックの乗客データを利用してロジスティクス回帰モデルを作成

年齢が30歳で男の乗客は生き残れるか?

0.1893673の値がでた。19%程度の生存率らしい

f:id:Maruring:20210715125012p:plain

勾配降下法のパラメータを更新手計算

確率的勾配降下法におけるパラメータを更新を手計算でやってみた。片方はモメンタムあり

f:id:Maruring:20210715153804p:plain

 

f:id:Maruring:20210715153815p:plain

 

f:id:Maruring:20210715153825p:plain