Help us understand the problem. What is going on with this article?

One Class SVMの実装

0 はじめに

本記事はsklearnでOne Class SVMを実装する際の自分用メモとして記載した内容です。他の記事を読んで理解した点や、記憶しておきたい点を図を用いてまとめています。

1 準備

読み込む関数は以下です。
image.png

2 データ定義

今回訓練データ、試験データ、外れ値データとして以下を定義します。

image.png

X_trainX_testX_outliersのグラフはそれぞれ以下の通りです。

image.png

image.png

image.png

3 データ学習

image.png

clf.get_paramsで学習に使われたパラメータが表示される
image.png

clf.decision_function(X_test)では各分布点における識別境界との距離を表しプラス値が分類内、マイナス値で分類外を意味する。
image.png

clf.predict(X_test)は1もしくは-1を返し、与えられた各点が外れ値かどうかがわかる。
image.png

外れ値として与えたX_outliersの範囲内外を調べるためにpredictdecision_functionを一つの表にまとめると以下のようになる。

image.png

外れ値が多いため、-1となっているデータが多いが、一部1となっているところがあり学習データ範囲内になっていることがわかる。

image.png

4 結果表示

image.png

sample_set_1は外れ値データセットの中で学習範囲内であったものの集合で、sample_set_mina1は外れ値データセットの中で外れ値であったものの集合です。

以下OKとなっている2点が1の点です。

image.png

以上、簡単な実装メモでした。

kentagon1007
初めまして。都内の某通信キャリアでサービスマネージャーをしています。データサイエンティストになるべく独学でいろいろ勉強しています。 ※プログラマではありません!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした