Anomaly Detectionコネクタ
Anomaly Detectionコネクタは、機械学習を使用してデータストリーム内の異常を検出します。
コネクタタイプ: MeddleAnomalyDetect
アルゴリズム: Isolation Forest
{ "type": "MeddleAnomalyDetect", "config": { "algorithm": "IsolationForest", "parameterKeys": ["temperature", "pressure"], "iforestConfig": { "numTrees": 100, "subsampleSize": 256, "anomalyRatio": 0.05, "retrainEvery": 50, "windowSize": 1000 } }}設定パラメータ
Section titled “設定パラメータ”- algorithm:
IsolationForest(現在サポートされている唯一のアルゴリズム) - parameterKeys: 分析するペイロードキーの配列
- iforestConfig: Isolation Forest固有の設定
Isolation Forestパラメータ
Section titled “Isolation Forestパラメータ”- numTrees: フォレスト内のツリー数(デフォルト:100)
- subsampleSize: 各ツリーのサンプルサイズ(デフォルト:256)
- anomalyRatio: 予想される異常の比率(デフォルト:0.05 = 5%)
- retrainEvery: Nサンプルごとにモデルを再トレーニング(デフォルト:50)
- windowSize: トレーニングウィンドウサイズ(デフォルト:1000)
- トレーニングフェーズ: モデルを構築するために初期データを収集
- 検出フェーズ: 新しいデータポイントに異常スコアを付ける
- 再トレーニング: 新しいデータで定期的にモデルを更新
- 出力: ペイロードに
anomaly_scoreとis_anomalyを追加
入力:
{ "temperature": 25.5, "pressure": 101.3}出力:
{ "temperature": 25.5, "pressure": 101.3, "anomaly_score": 0.42, "is_anomaly": false}異常検出:
{ "temperature": 95.0, "pressure": 150.0, "anomaly_score": 0.89, "is_anomaly": true}ユースケース
Section titled “ユースケース”- 予知保全 - 故障前に機器の異常を検出
- 品質管理 - 欠陥製品を特定
- プロセス監視 - 異常なプロセス動作を検出
- セキュリティ - 異常なシステム動作を特定
パラメータチューニング
Section titled “パラメータチューニング”ノイズの多いデータの場合
Section titled “ノイズの多いデータの場合”anomalyRatioとsubsampleSizeを増やす:
{ "anomalyRatio": 0.1, "subsampleSize": 512}安定したプロセスの場合
Section titled “安定したプロセスの場合”anomalyRatioを減らし、windowSizeを増やす:
{ "anomalyRatio": 0.01, "windowSize": 2000}急速に変化する条件の場合
Section titled “急速に変化する条件の場合”retrainEveryを減らす:
{ "retrainEvery": 25}ベストプラクティス
Section titled “ベストプラクティス”- 関連パラメータを選択 - 意味のあるメトリクスのみを含める
- トレーニング期間を許可 - モデルは学習するために初期データが必要
- 異常比率を調整 - ドメインに合わせて適応
- 誤検知を監視 - 誤アラームが多すぎる場合はパラメータを調整
- アラートと組み合わせる - 通知のためにAlertコネクタと使用
ワークフロー例
Section titled “ワークフロー例”OpcuaReader → AnomalyDetect → Trigger → Alert ↓ InfluxDb2Writer- センサーデータを読み取る
- 異常を検出
is_anomaly == trueでトリガー- アラートを送信してデータベースに保存