【Python】非線形サポートベクターマシンを使って,同定したモデルパラメータの分類を行う
この記事はこんな人におすすめです
  • 非線形サポートベクターマシンを研究している人
  • 分類問題を解くために機械学習を勉強している人
  • 研究にモデルパラメータ同定を行なっている人

こんにちは.けんゆー(@kenyu0501_)です.
研究アーカイブとして残しておきますが,見たい方は見てください.
何をしているのかというと,

  • 脳波信号のモデリングを行ない,
  • 逆問題を解くことでモデルパラメータを同定し,
  • 集中状態,安静状態を決めるためにSVMで分類

的なことをやっています.
詳しくは,研究アーカイブに残しているので,勝手に見てくださいませ.


現在,結果を色々と論文にまとめていたりするので,主要な解析データは見せることができないのです.
が,,,,使っているプログラムなどはおいらのブログで管理していこうと思っていますので,使いたい人はどうぞ!

一部の使わないデータを先に見せておくとこのような感じで分類ができます.
集中時(赤)リラックス時(青)です.

線形分離ができないデータなので,あまりよろしくないデータですが,このように非線形分類が可能です.
左側が,分類をする線を引くために使用したデータで,右側が,その線が上手く機能しているかをテストしているデータです.
上に正解率が出ていますが,だいたい87%は分類できているっぽいですね!
データ自体があまり良くないので,実験データも色々と取り直さないといけないっす...

非線形サポートベクターマシンのプログラムについて

特に自分のアーカイブなので詳細な説明はしないと思いますがざっくりと書いていきます.

ちょっと丁寧にコメントをつけましたので,追えるかもしれません.

SVMのパラメータ

今回カーネル法ではパイプラインによる記述をしましたが,X_train,y_trainのデータは以下のようなパラメータでSVMが使用されています..

多項式カーネル”Poly”

特徴量の高次元写像には,多項式カーネルを用いて,3次元の写像を行なっています.

標準化”Standard Scalar”

データの前処理には,標準化を行なっています.

使用するデータの分布が色々と幅広いので,他条件データを比較するために標準化をします.
重要なことはそのくらいですかね.

参考になればしてみてください.
理論の話などはいかにまとめています.