CASE 02異常検知

異常検知モデルの開発

医学系研究室での研究支援として取り組んだ開発事例です。One-Class SVMを用いた異常検知モデルを開発。交差検証・ROC評価とPCAによる可視化を組み合わせ、モデルを検証する処理を実装しました。

CLIENT
医学系研究室
FIELD
異常検知
DEVELOPMENT
モデル・解析処理の実装、評価・可視化
SUPPORT
コードの解説、実験条件の設定補助
TECHNOLOGY
  • scikit-learn / One-Class SVM
  • NumPy / pandas / OpenCV
  • ROC / PCA / Matplotlib

開発の目的

データの特徴をもとに異常を検出するため、One-Class SVMを使った学習・評価の処理を実装しました。学習条件を検証する処理と、別途テストデータを評価する処理を用意しています。

異常検知モデルの仕組みPCAで2次元に可視化したデータの分布の模式図。One-Class SVMが正常データの分布を学習して境界を作り、境界の外側にあるデータを異常として検出する。右側は、分割を入れ替えて評価する交差検証と、テストデータのROC曲線による判別性能の確認を示す。01 PCA SPACE02 VALIDATIONPC1PC2正常データ(学習に使用)異常として検出One-Class SVM が学習した境界交差検証で学習条件を検証検証に使う分割を入れ替えて評価テストデータの評価(ROC)AUC判別性能を確認別Notebookで実行
FIGUREOne-Class SVMが正常データの分布から境界を学習し、境界の外側を異常として検出。交差検証とROCで判別性能を確かめ、PCAで分布を可視化します。

処理の全体像

入力データから解析・評価結果を出力するまでの流れです。

INPUT

  • 解析対象データ
  • 評価用のラベル

PROCESS

  1. データの準備
  2. One-Class SVMによる学習
  3. 交差検証・テスト評価

OUTPUT

  • 異常検知の結果
  • ROC評価
  • PCAによる可視化

開発内容

前処理、モデルの実装、評価・可視化を組み合わせています。

POINT 01

One-Class SVMによる異常検知

One-Class SVMを利用し、データの特徴を学習して異常を検出する処理を構築しました。

POINT 02

学習と評価の実装

交差検証を行うNotebookと、テストデータを評価するNotebookを用意しました。ROCによる評価でモデルの判別性能を確認できます。

POINT 03

PCAによる特徴の可視化

主成分分析の可視化処理を用意し、入力データの特徴を図で確認できるようにしました。

技術構成

主要な技術と、それぞれが担う処理をまとめています。

領域技術用途
モデルscikit-learn / One-Class SVM異常検知と交差検証
データ処理NumPy / pandas / OpenCV解析データの準備
評価・可視化ROC / PCA / Matplotlib判別性能と特徴の可視化

実現したこと

異常検知の学習、交差検証、テスト評価、特徴の可視化を行う処理を実装しました。モデルの検証に必要な結果を確認できる構成です。あわせて、開発したコードの解説と、実験に合わせた条件設定の補助を行いました。

データに合った解析方法を、
一緒に検討します

扱う画像やデータ、解析したいテーマに応じて、必要なモデルと処理の仕組みをご提案します。検討段階からご相談ください。

データ解析・開発について相談する