38
Rで学ぶデータサイエンス #05 ロジスティック回帰 2012/04/28 TwitterID:sleipnir002

パターン認識 05 ロジスティック回帰

Embed Size (px)

Citation preview

Page 1: パターン認識 05 ロジスティック回帰

Rで学ぶデータサイエンス #05 ロジスティック回帰

2012/04/28

TwitterID:sleipnir002

Page 2: パターン認識 05 ロジスティック回帰

自己紹介

Twitter ID:@sleipnir002 みかどのひと@悪の枢軸

•Tokyo.Rでパターン認識の発表をシリーズでやっています。 •職業:BIコンサル •IT業界からBIを駆逐して、統計をやろうぜという運動を起こしたい。 •おみやげを置いておきます。 •AKB48だと、こじはるが好きです。

Page 3: パターン認識 05 ロジスティック回帰

R一人勉強会のご紹介

Rで学ぶデータサイエンス 5パターン認識 (著)金森 敬文, 竹之内 高志, 村田 昇, 金 明哲 共立出版 今ならデモスクリプトがダウンロードできる!

http://www.kyoritsu-pub.co.jp/service/service.html#019256

第1章 判別能力の評価 Done 第2章 k-平均法 Done 第3章 階層的クラスタリング 第4章 混合正規分布モデル Done 第5章 判別分析 第6章 ロジスティック回帰 ←イマココ! 第7章 密度推定 第8章 k-近傍法 Done 第9章 学習ベクトル量子化 Done 第10章 決定木 第11章 サポートベクターマシン 第12章 正則化とパス追跡アルゴリズム 第13章 ミニマックス確率マシン 第14章 集団学習 第15章 2値判別から多値判別へ

さぁ、今すぐAmazonでクリック!!

面白ネタ募集中!

Page 4: パターン認識 05 ロジスティック回帰

これまでのあらすじ

• 前回は第4回としてK近傍法とLVQを学んだよ!

テストデータ

3近傍のトレーニングデータ

訓練データ

K近傍法 LVQ

Page 5: パターン認識 05 ロジスティック回帰

今回の目的

• ロジスティック回帰

• ロジスティック回帰の弱点

• 非線形ロジスティック回帰

• ニューラルネットワーク

ロジスティック回帰とその仲間についての大枠を理解

関数の細かい使用法などは 後でBlogにまとめます。

Page 6: パターン認識 05 ロジスティック回帰

※今日は話を2値判別に絞ります。

Page 7: パターン認識 05 ロジスティック回帰

ロジスティック回帰

• クラスの事後確率オッズ比の対数(ロジット)が特徴量の線形和で表現されているモデル(A)

• 事後確率はシグモイド関数(B)であらわされる。

質的変数を線形に回帰するためのアルゴリズム。

e.g.2値判別の場合

xxY

xY T

)|1Pr(1

)|1Pr(log(A)

(B)

Page 8: パターン認識 05 ロジスティック回帰

回帰ってなんすか?

Page 9: パターン認識 05 ロジスティック回帰

モデル式

回帰分析

例:

ワインの値段~畑の温度+土壌のミネラル+・・・

幸福度~年収+周りとの年収比+・・・

説明される(従属)変数を説明(独立)変数の式で当てはめる。予測、変数の効果の調査に用いる。

nnxxxy 2211

独立変数 独立変数 独立変数 従属変数 従属変数 従属変数 係数

既にあるデータ

nnpn

p

y

y

Y

xx

xx

X

1

1

111

1 2

Page 10: パターン認識 05 ロジスティック回帰

課題

Page 11: パターン認識 05 ロジスティック回帰

質的変数はそのままでは回帰できない。

Page 12: パターン認識 05 ロジスティック回帰

質的変数を回帰する上での問題

• 判別したいクラスにそれぞれ-1とか1とか数字を割り当てる。

• 30や-1はどういう意味がある?

離散型の変数を連続変数で予測しても意味がない。

e.g.SPAM判別問題

X

Y=1→No

Y=-1→ Yes

Y=0→?

Y=30→?

nnxxxy 2211

無理やり2値判別問題に 線形回帰を適用すると、、、

Page 13: パターン認識 05 ロジスティック回帰

ためしにやってみると

2値判別問題として、ラベルに1と2を割り当てて Irisデータを対象に回帰分析を行った結果

Page 14: パターン認識 05 ロジスティック回帰

ロジスティック回帰

• クラスの事後確率の比の対数(ロジット)が特徴量の線形和で表現されているモデル(A)

• 事後確率はシグモイド関数(B)であらわされる。

質的変数を線形に回帰するためのアルゴリズム。

e.g.2値判別の場合

xxY

xY T

)|1Pr(1

)|1Pr(log(A)

(B)

Page 15: パターン認識 05 ロジスティック回帰

モデル構築 glm( family=binominal)

判別 predict()

モデル=パラメータ

ラベル付きデータ

ロジスティック回帰で判別する

モデル構築:対数尤度の最大化 判別:事後確率の最大化→ ならY=1

事後確率 xT

exY

1

1)|1(Pr

}2,1{ 1

)|Pr(log)(j

n

i

iij xjYyL

対数尤度

を最大化

テストデータ x

予測結果 y

nnpn

p

y

y

Y

xx

xx

X

1

1

111

0xT

Page 16: パターン認識 05 ロジスティック回帰

参考:ロジットから事後確率までの流れ

xxY

xY T

)|1Pr(1

)|1Pr(log

xT

exY

xY

)|1Pr(1

)|1Pr(

))|1Pr(1()|1Pr( xYexY xT

xx TT

exYe )|1Pr()1(

)1()|1Pr(

x

x

T

T

e

exY

)1(

1)|1Pr(

xT

exY

)1(

1)|1Pr(

xT

exY

Page 17: パターン認識 05 ロジスティック回帰

ロジスティック回帰をRで実行する

Page 18: パターン認識 05 ロジスティック回帰

その前に

Page 19: パターン認識 05 ロジスティック回帰

データの前処理について

Page 20: パターン認識 05 ロジスティック回帰

IRISデータ

花の種類×萼片(幅・長さ)×花弁(幅・長さ)

sepal petal

setosa virginia versicolor

Setosaだけ形が異なる?

Page 21: パターン認識 05 ロジスティック回帰

Set

Vir+Ver

2値判別問題にするための処理

setosaとvirginica+versicolorに分けて2値判別を行う。

3群 2群

線形分離可能なデータであることに注目

Page 22: パターン認識 05 ロジスティック回帰

実行してみる

Page 23: パターン認識 05 ロジスティック回帰

ロジスティック回帰で判別する。

*デモ、http://www.kyoritsu-pub.co.jp/service/service.html#019256を基に一部改変

GLMのモデルを 返す。Binominalで ロジスティック判別

Page 24: パターン認識 05 ロジスティック回帰

判別結果

予測値と事後確率 予測値と残差

判別の精度はほぼ完ぺき!

Page 25: パターン認識 05 ロジスティック回帰

ロジスティック回帰の弱点

Page 26: パターン認識 05 ロジスティック回帰

通常の回帰と同じ

ロジスティック回帰の弱点

• 入力空間のデータより、超平面を構成、1次元に落とし込む。

• 非線形に回帰したい。

入力データに対して超平面を構成する→ 線形分離不可能なデータに弱い

20

10

)(

cx

cx

RRxy

T

T

nT

0xT

超平面(線形)

超平面(非線形)

),,(),(..

)()(

212121 xxxxxxge

RRxy kT

 

0xT

0xT

Page 27: パターン認識 05 ロジスティック回帰

2値判別問題にするための処理

Setosa+virginiaとversicolorに分ける

Set+Vir

Ver

3群 2群

線形分離不可能?なデータであることに注目

Page 28: パターン認識 05 ロジスティック回帰

線形で判別してみる

(さっきと一緒)

Page 29: パターン認識 05 ロジスティック回帰

判別結果

予測値と事後確率 予測値と残差

判別の精度が著しく落ちている。

Page 30: パターン認識 05 ロジスティック回帰

非線形に判別してみる。

e.g. 一次式ではなく二次式で判別する。

nnnnnn

nn

xxxxxxxy

xxxy

1121122211

2211

Page 31: パターン認識 05 ロジスティック回帰

Rで書くとこんなかんじ

e.g. 一次式ではなく二次式で判別する。

glm(Species~.,iris[index,],family=binomial)

glm(Species~.*.,iris[index,],family=binomial)

Page 32: パターン認識 05 ロジスティック回帰

非線形で判別してみる

Page 33: パターン認識 05 ロジスティック回帰

判別結果

予測値と事後確率 予測値と残差

線形分離不可能?なデータでも判別の精度が高い

Page 34: パターン認識 05 ロジスティック回帰

ニューラルネットワーク

Page 35: パターン認識 05 ロジスティック回帰

ニューラルネットワーク

生物の脳の情報処理構造を模した情報処理装置

• 多層パーセプトロン

• 自己組織化マップ

• RBFネットワーク

• 学習ベクトル量子化

単純パーセプトロン= ロジスティック回帰

Page 36: パターン認識 05 ロジスティック回帰

ロジスティック回帰と 多層パーセプトロン

複数の階層を設けることで、非線形の効果を得ることが 出来る。

ロジスティック回帰

x1

x2

x3

x4

f(y)

)exp(1

1:

Yf

input output 多層パーセプトロン

x1

x2

x3

x4

h2

input hidden

h1

h3

j2

j1

j3

f(y1)

f(y2)

output

・・・

w1

w2

w3

w4

誤差逆伝播法で 重みを学習

W W この本を チェック!

Page 37: パターン認識 05 ロジスティック回帰

ニューラルネットで判別する。

*デモ、http://www.kyoritsu-pub.co.jp/service/service.html#019256を基に一部改変

入力の一次式の未使用

モデル構築:nnet(Species~, X, size) 予測:predict(res, X, type=“class”)

データが1次式でもモデルが複雑なので、非線形ロジスティック回帰のように判別可能である。

結果

Page 38: パターン認識 05 ロジスティック回帰

まとめ

• ロジスティック回帰は質的変数の判別に用いる回帰モデル

• データが線形判別不可能な場合は非線形ロジスティック回帰を用いる。

• さらに複雑なモデル構築を行うとニューラルネットワークとなる。