狠狠撸

狠狠撸Share a Scribd company logo
Rで学ぶデータサイエンス
 #05 ロジスティック回帰

     2012/04/28
 TwitterID:sleipnir002
自己紹介

Twitter ID:@sleipnir002
みかどのひと@悪の枢軸
?Tokyo.Rでパターン認識の発表をシリーズで
やっています。
?職業:BIコンサル
?IT業界からBIを駆逐して、統計をやろうぜとい
う運動を起こしたい。
?おみやげを置いておきます。
?AKB48だと、こじはるが好きです。
搁一人勉强会のご绍介
                       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章 集団学習                      さぁ、今すぐAmazonでクリック!!
第15章 2値判別から多値判別へ
これまでのあらすじ
? 前回は第4回としてK近傍法とLVQを学んだ
  よ!
     K近傍法           LVQ




   テストデータ




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



     訓練データ
今回の目的
    ロジスティック回帰とその仲間についての大枠を理解

?   ロジスティック回帰
?   ロジスティック回帰の弱点
?   非線形ロジスティック回帰
?   ニューラルネットワーク

    関数の細かい使用法などは
     後でBlogにまとめます。
※今日は话を2値判别に绞ります。
ロジスティック回帰
   質的変数を線形に回帰するためのアルゴリズム。

                          e.g.2値判別の場合
? クラスの事後確率オッズ比
  の対数(ロジット)が特徴量             Pr(Y ? 1 | x)
                  (A) log                   ? ?Tx
  の線形和で表現されている            1 ? Pr(Y ? 1 | x)
  モデル(A)
? 事後確率はシグモイド関数
  (B)であらわされる。

                  (B)
回帰ってなんすか?
回帰分析
説明される(従属)変数を説明(独立)変数の式で当てはめる。
      予測、変数の効果の調査に用いる。
            モデル式                         既にあるデータ

従属変数    従属変数
         係数             独立変数             ? x11 ? x1 p ? ? y1 ?
                                         ?            ? ? ?
                                      X ?? ? ? ? ? Y ?? ? ?
                                         ?x ? x ?       ?y ?
   y ? ?1 x1 ? ? 2 x2 ? ? ? ? n xn       ? n1     np ?  ? n?




             ? ?1              ? ?2             ?
例:
ワインの値段~畑の温度+土壌のミネラル+???
幸福度~年収+周りとの年収比+???
课题
质的変数はそのままでは回帰できない。
质的変数を回帰する上での问题
   離散型の変数を連続変数で予測しても意味がない。

                               e.g.SPAM判別問題
? 判別したいクラスにそれぞ     Y=30→?
  れ-1とか1とか数字を割り当
  てる。
                   Y=1→No       y ? ?1 x1 ? ? 2 x2 ? ? ? ? n xn
? 30や-1はどういう意味があ
  る?                                         X

                    Y=0→?


 無理やり2値判別問題に
線形回帰を適用すると、、、      Y=-1→ Yes
ためしにやってみると
2値判別問題として、ラベルに1と2を割り当てて
  Irisデータを対象に回帰分析を行った結果
ロジスティック回帰
   質的変数を線形に回帰するためのアルゴリズム。

                          e.g.2値判別の場合
? クラスの事後確率の比の対
  数(ロジット)が特徴量の線             Pr(Y ? 1 | x)
                  (A) log                   ? ?Tx
  形和で表現されているモデ            1 ? Pr(Y ? 1 | x)
  ル(A)
? 事後確率はシグモイド関数
  (B)であらわされる。

                  (B)
ロジスティック回帰で判别する
               モデル構築:対数尤度の最大化
            判別:事後確率の最大化→ ? T x ? 0 ならY=1
判別
                                                                              モデル構築
predict() テストデータ                      ラベル付きデータ
                x                                                  glm( family=binominal)
                                        ? x11 ? x1 p ? ? y1 ?
                                        ?            ? ? ?
                                     X ?? ? ? ? ? Y ?? ? ?
                                        ?x ? x ?       ?y ?
                                        ? n1     np ?  ? n?
           事後確率
                                                                       対数尤度
                             1
    Pr ( Y ? 1 | x ) ?
                                                                                  n
                                                            L( ? ) ?    ? ? y log Pr(Y ? j | x )
                                                                                        j   i   i


                         1 ? e?? x
                                 T                                     j ?{1, 2} i ?1

                                                                       を最大化

                                                  ?
            予測結果                       モデル=パラメータ
                 y
参考:ロジットから事后确率までの
       流れ
                                                                       ?T x
      Pr(Y ? 1 | x)                                                e
log                   ?? x
                        T
                                            Pr(Y ? 1 | x) ?              ?T x
    1 ? Pr(Y ? 1 | x)                                         (1 ? e )
    Pr(Y ? 1 | x)      ?T x                                             1
                    ?e                      Pr(Y ? 1 | x) ?
  1 ? Pr(Y ? 1 | x)                                           (e   ?? T x
                                                                              ? 1)
                 ?T x
 Pr(Y ? 1 | x) ? e (1 ? Pr(Y ? 1 | x))                                  1
                                            Pr(Y ? 1 | x) ?        ?? T x
        ?T x                         ?T x
                                                              (e              ? 1)
 (1 ? e ) Pr(Y ? 1 | x) ? e
ロジスティック回帰を搁で実行する
その前に
データの前処理について
滨搁滨厂データ
   花の種類×萼片(幅?長さ)×花弁(幅?長さ)

setosa          versicolor           virginia




             sepal           petal

         Setosaだけ形が異なる?
2値判别问题にするための処理

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

                                          Set




                                      Vir+Ver



 3群                     2群


線形分離可能なデータであることに注目
実行してみる
ロジスティック回帰で判别する。

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




*デモ、http://www.kyoritsu-pub.co.jp/service/service.html#019256を基に一部改変
判別結果
予測値と事後確率          予測値と残差




     判別の精度はほぼ完ぺき!
ロジスティック回帰の弱点
ロジスティック回帰の弱点
              入力データに対して超平面を構成する→
                線形分離不可能なデータに弱い

? 入力空間のデータより、超平
  面を構成、1次元に落とし込む。                               通常の回帰と同じ

                                                超平面(線形)
      y ? ? x( R ? R)
              T     n


      ? ? T x ? 0 ? c ? 1?
      ? T                ?
      ? ? x ? 0 ? c ? 2?
      ?                  ?           超平面(非線形)              ?T x ? 0

? 非線形に回帰したい。
 y ? ? T ? ( x) ( R k ? R)
                                                              ?T x ? 0
 e.g.  1 , x2 ) ? ( x1 , x2 , x1 ? x2 )
     (x                                            ? x?0
                                                    T
2値判别问题にするための処理

       Setosa+virginiaとversicolorに分ける

                                        Set+Vir




  3群                      2群             Ver


線形分離不可能?なデータであることに注目
線形で判別してみる
 (さっきと一緒)
判別結果
予測値と事後確率          予測値と残差




    判別の精度が著しく落ちている。
非线形に判别してみる。

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




y ? ?1 x1 ? ? 2 x2 ? ? ? ? n xn



y ? ?1 x1 ? ? 2 x2 ? ? ? ? n xn ? ?12 x1 x2 ? ? ? n ?1n xn ?1 xn
搁で书くとこんなかんじ

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




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

glm(Species~.*.,iris[index,],family=binomial)
非线形で判别してみる
判別結果
予測値と事後確率          予測値と残差




線形分離不可能?なデータでも判別の精度が高い
ニューラルネットワーク
ニューラルネットワーク

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


?   多層パーセプトロン
?   自己組織化マップ
?   RBFネットワーク
?   学習ベクトル量子化

      単純パーセプトロン=
       ロジスティック回帰
ロジスティック回帰と
                       多層パーセプトロン
      複数の階層を設けることで、非線形の効果を得ることが
                出来る。

ロジスティック回帰                               多層パーセプトロン
input output                input         hidden output
                                    W                    W
                                                                     この本を
 x1                          x1
       w1                                h1         j1               チェック!
 x2   w2                     x2                              f(y1)

      w3
                   f(y)                  h2   ???   j2
 x3                          x3                              f(y2)
      w4
                 1                       h3         j3
 x4   f:                     x4
           1 ? exp( ? Y )

                                        誤差逆伝播法で
                                         重みを学習
ニューラルネットで判别する。
                モデル構築:nnet(Species~, X, size)
                予測:predict(res, X, type=“class”)




                                                     入力の一次式の
                                                       未使用




                                データが1次式でもモデルが複雑なので、非線
                                形ロジスティック回帰のように判別可能である。
   結果
*デモ、http://www.kyoritsu-pub.co.jp/service/service.html#019256を基に一部改変
まとめ
? ロジスティック回帰は質的変数の判別に用い
  る回帰モデル
? データが線形判別不可能な場合は非線形ロ
  ジスティック回帰を用いる。
? さらに複雑なモデル構築を行うとニューラル
  ネットワークとなる。

More Related Content

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