外れ値検知手法のベンチマークを測定するスクリプトをPyODとOptunaで書いた

はじめに

外れ値検知の代表的な手法であるkNN, LOF, OC-SVM, Isolation Forestについて、ベンチマークを測定するスクリプトを作成した。 各手法は外れ値検知ライブラリのPyODに実装されており、今回はOptunaによるハイパーパラメータ探索も入れている。

PyODのベンチマークについては公式にもドキュメントが用意されているので、一読を勧める。 pyod.readthedocs.io

準備

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

pip install pyod

また、以下のgithubレポジトリからベンチマーク用のデータをダウンロードしておく。 github.com

なおベンチマーク用データ自体は以下のサイトから入手可能である。種類はたくさんあるが、今回はそこから16種類のデータセットを利用する。 odds.cs.stonybrook.edu

スクリプトたち

ベンチマークスクリプトと同じ階層に dataディレクトリを作成しておき、ベンチマーク用データはdataディレクトリ以下にまとめて置いておくこと。

スクリプトはPyLint的に10.00(満点)になるように作ったが、可読性はいまいちかもしれない。

trial数やハイパーパラメータの探索範囲などはかなり適当に決めている。

おわりに

PyOD使おうぜ!(n回目)

Optunaもいいぞ!