ふくふくHukuhuku Inc.
EP.05Anomaly 9分公開: 2026-05-10

多変量異常検知:PCA と Mahalanobis 距離

「CPU 使用率は普通、メモリも普通、ディスク IO も普通、でも組み合わせが異常」── 1 次元では見えない異常を見つける。

#PCA#Mahalanobis
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

1 次元の異常検知では見えない異常がある。「CPU/メモリ/IO それぞれは普通だが組み合わせが異常」── これを多変量で捉える手法を扱います。

Mahalanobis 距離

共分散を考慮した距離。各変数の相関を踏まえた「いつもの組合せからの乖離」を測る。

Mahalanobis 距離での異常検知
Python
from scipy.spatial.distance import mahalanobisimport numpy as np
mean = X.mean(axis=0)cov_inv = np.linalg.inv(np.cov(X.T))
distances = np.array([mahalanobis(x, mean, cov_inv) for x in X])threshold = np.percentile(distances, 99)anomalies = X[distances > threshold]

PCA + 再構成誤差

PCA で次元圧縮 → 元に復元した時の誤差で異常検知。「いつものパターン」から外れているほど復元が困難になる。Isolation Forest と LOF の中間的な手法。

での活用

マルチメトリック監視

CPU + メモリ + ディスク IO + ネットワーク + リクエスト数を 1 つの多変量異常検知器に。Datadog の Watchdog や New Relic の Apdex はこれの応用。

ふくふくの進め方

多変量メトリックの監視基盤構築、Datadog/New Relic 連携を含めて 1〜2 ヶ月でご支援。

次回予告

EP.06 はオートエンコーダによる異常検知:深層学習版。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp