2016-06-03_21h55_29

データ解析の手順』 における「7. 回帰モデルもしくはクラス分類モデルを適用できるデータ領域を決める」についてです。なお実行するためのプログラムについてはこちらをご覧ください。

公開中のプログラム・コード一覧(実用的かつ実践的なデータ解析・機械学習・データマイニング) : 大学教授のブログ

One-Class Support Vector Machine(OCSVM)により対象のデータセットが存在するデータ領域を計算できます。これにより回帰モデルやクラス分類モデルの適用領域を設定できます。

[New] OCSVMのプログラムを簡単に入手できるようになりました!

それぞれのURLからお求めください!

R: https://spike.cc/shop/univprof/products/dT1Zpern

Python: https://spike.cc/shop/univprof/products/Llon4sYk

One-Class Support Vector Machine(OCSVM)

OCSVMではまずはじめにカーネル関数を決めなければなりません。もちろんデータセットに応じて最適なカーネル関数は異なると思いますが、ガウシアンカーネルを用いればまず間違いありません。事前に決めなければならないパラメータの数も一つと少ない方ですし、変数間の非線形性も考慮できます。ここではガウシアンカーネルを使用したOCSVMの解析方法について説明します。

  1. 変数をオートスケーリングする
    オートスケーリングとは各変数から平均値を引いて平均を0にし、各変数を標準偏差で割って標準偏差を1にする操作です。
  2. νを決める
    νは、対象のデータセットのなかでデータ領域から外れるサンプルの割合を表します。たとえば3シグマ法にもとづいて考えると、ν=0.003になります。
  3. γの候補を決める
    例えば、
    γ: 2-20, 2-19, …, 29, 210
    とします。
  4. γの値ごとにカーネル行列を計算し、その分散を計算する
    たとえばカーネル行列が100×100の行列であったとき、単純に10000×1のベクトルになおして分散を計算します。
  5. 分散の大きさが最大となるγの値を最適値として決定する
    分散が最大となるγを選ぶことで、多様な値をもつカーネル行列となります。
  6. OCSVMモデルを構築する
  7. 対象のデータセットについて、OCSVMモデルによりデータ領域の中か外かを推定する
  8. [新しいデータの推定をするとき] 新しいデータから、オートスケーリングしたときの変数の平均値を引き、標準偏差で割る
  9. [新しいデータの推定をするとき] 6.で得られたOCSVMモデルによりデータ領域の中か外かを推定する

新しいデータを推定するときに工夫が必要なのは、最終的に得られたOCSVMモデルは、変数がオートスケーリングされた後のモデルであるためです。そこで、新しく推定したい変数のデータがあれば、そのデータからオートスケーリングしたときの説明変数の平均値を引き、標準偏差で割ってから、OCSVMモデルにより目的変数の推定値を計算する必要があります。