SSブログ

【SPSS Modeler】ロジスティック回帰とSVMを使った二値分類 その2 [データサイエンス、統計モデル]

【SPSS Modeler】ロジスティック回帰とSVMを使った二値分類 その1
http://skellington.blog.so-net.ne.jp/2018-03-01

前回は、ロジスティック回帰を使いましたが、今回は、SVM(サポートベクターマシーン)を使い二値分類を行います。

データは、前回と同様に、こちらのデータを使います。


SVM(サポートベクターマシーン)は、線形SVMと非線形SVMがあります。
SPSS Modelerでも、エキスパート設定をすえば、線形SVM(線形)と非線形SVM(RBF, 多項式, Sigmoid)が用意されています。



今回のデータでは、明らかに線形SVMで良いのですが、あえて非線形SMVも使ってみることにします。

まずは、線形SMVから。
モデルを作成して、シミュレーションを使い、線形分離する直線をひきます。



直線SVMなので、直線ですね。



念のためにx1, x2の範囲を10倍くらい大きくしても直線のままです。

この様に書くと、非線形SVMは違うのか!?というネタバレになってしまいますが・・・

続いて、非線形SMV。
非線形SMVは、線形分離できないデータに対して、カーネルトリックを使うことで、超平面にデータを写像してから、線形SVMと同じ仕組みでデータを分離します。

線形SVMと同様に3種類の非線形SVM(RBF, 多項式, Sigmoid)を試していきます。

RBFの結果 → おおむね線形


多項式の結果 → やや非線形


Sigmoidの結果 → おおむね線形


だいたい、線形SVMと同じような結果に見えますが、
Sigmoidだけ少し変な線分が見えますよね。

これは何でしょうか?

「バグ? or 異常値?」と思って、目をつぶってしまうとダメで、実務においても、このようなグラフを見て違和感を感じれるか感じられないかが、分析者にとって大切な心構えだと思っています。

そこで、x1, x2の範囲を大きくしてシミュレーションしてみます。

RBFの結果


多項式の結果


Sigmoidの結果


RBFや多項式は、まさしくそれっぽい感じで分離されていました。

今回は、x1, x2の2変数のみでモデルを作成しましたが、最近の流れとしては、膨大な数の特徴量を作成し、モデリングをしている事例を見かけます。

しかも、精度が劣化するという理由で、定期的に自動でモデリングを行う機能をもったソフトウェアも多数出てきました。

近年、機械学習の敷居は下がってきており、ツールが使える人の数は年々増えてきています。
しかし、アルゴリズムの癖をきちんと理解した上で、正しい使い方ができている人はほとんど増えていない印象です。

今回のようなシンプルな事例では、発見できる異常な現象も、膨大な変数やレコードに埋もれてしまい、発見できない場合が多数あります。

もちろん機械学習が得意とする分野もあるので、今回解き明かしたい課題に対してはどのアプローチが適切なのかを考えた上で便利なツールを使っていくことが重要だと思います。

nice!(9)  コメント(0)