見出し画像

scikit-lean 分類 - 基本のlinear SVC

一番基本のLinearSVC (Support Vector Classifier)の例をフォローしながら練習してみる。元の例はここ

[1] 必要なライブラリを読み出す。"ggplot"というstyleはR言語でよく使われるものらしい。matplotlibの、styleについてはここ、下のplotする時に出てくるcmap(colormap)についてはここで参照。

[2] 適当にxとyのデータ点を作ってみる。明らかに左下と右上の方で2つのデータの塊(クラスター)が見える。

画像3

[3][4] 上のx,yをnumpyのarrayで書く。yにはtargetの分類0(左下のクラスタ),1(上部のクラスタ)を書く。このtargetの値にちゃんと分類できるか?

[5] 以下の例ではSVM(Support Vector Machine)のkernalを"linear"にして分類を行う。LinearSVCとsvm.SVCのkernelをlinearに設定する最適化は実は異なるアプローチでされており(Ref)、大量のデータ(~million)がある場合はLinearSVCの方が効率的で、~20k程のデータ量以上になるとsvm.SVCは重くなるようだ(Ref)。

[6] classificationのデータをtargetにfitさせる。

画像3

[7] 適当なデータ点を作ってみて、ちゃんと0と1に分類されているか数字をみながらチェック。

画像4

[8] 導かれたcoef_とintercept_から分類の線を引く。

画像5

numpy.linespaceを使って、0から12まで50(default)分割した値をxx(=x0)に返し、そのxxでのyy(=x1)を計算し(Ref)、そのあとはplot。

画像5



この記事が気に入ったらサポートをしてみませんか?