Pythonの異常検知用パッケージPyODの形式に従って、ガウス混合モデル(GMM)に基づく異常検知を実装した

はじめに

2021年8月22日現在、Pythonの異常検知用パッケージであるPyODにガウス混合モデル(Gaussian Mixture Model; GMM)ベースの 異常検知が実装されていなかったので、それを実装したということである。

PyODのインストール

pipでインストール可能である。

pip3 install pyod

作成したクラス:GMM

すでに実装済のPyODのアルゴリズムを参考に、scikit-learnのGaussianMixtureクラスをラップする形で GMMのクラスを作った。PyODのBaseDetectorクラスを継承するだけなので簡単である。

【ここをクリックしてコードを表示する】 gist.github.com

GMMに基づく異常検知のデモンストレーション

簡単なデモンストレーションのnotebookを作成した。今回作成したGMMクラスをgmm.pyとして保存した場合のnotebookである。 2次元の特徴空間において3つのガウス分布から乱数を発生させてデータを作成している。うまく動いているように見える。 gist.github.com

おわりに

みんなPyOD使おうぜ!(2回目)