SVMのプログラミングをgoogle Colaboratoryで実行してみる。
SVMの勉強のため
https://datanerd.hateblo.jp/entry/2017/09/03/202738
の内容をgoogle Colaboratoryで実行してみた。
以下、実行上のメモ:
-
import mglearnでエラーが出たので
!pip install mglearnをはじめに追加した。 -
make_blobsの使い方は
https://qiita.com/fujin/items/bb82d77b0b08c107f819
に記載されている。
centersはデータの塊の数を設定する。
random_stateは乱数生成のシードとなる整数を設定する。
他にもn_samplesによってデータ数を設定できる。 -
LinearSVC().fit(X, y): (X, y)をLinearSVCでフィッティングする。
-
plot_2d_separator: 二次元で境界線を作って作画してくれる。
-
discrete_scatter:
第3引数に各データに対するラベルを指定することにより、そのラベルに応じてMarkerの種類や色を変えて散布図を描写をしてくれるメソッド。
第1引数: 散布図に描写する各データのX値
第2引数: 散布図に描写する各データのY値
第3引数: 散布図に描写する各データのLABEL -
yを表示すると以下のようになっている
[3 2 1 3 3 0 2 1 3 3 0 0 3 1 1 2 2 3 3 0 0 1 0 0 3 0 0 3 2 1 1 3 1 3 0 2 3
0 1 2 1 3 2 2 0 2 1 0 1 1 1 2 0 0 3 2 2 2 0 3 3 2 1 2 0 1 3 1 0 0 1 2 0 1
0 0 3 2 3 1 2 0 3 2 3 2 0 2 2 3 1 0 3 2 2 1 1 3 1 1]
これがy = y % 2によって
[1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 1 1 1 0 0 1
0 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1
0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1]
と0と1にデータになる。
このyをdiscrete_scatterの第3引数に使用すると、2色のデータに分類できる。