メインコンテンツまでスキップ

予測分析 (機械学習)

目次


概要

予測分析画面は、時系列タグデータを学習して将来値を予測し、異常値(異常診断)を検知します。オペレータが GUI で学習区間・サンプリング周期・アルゴリズムを選択するだけで、結果をチャートと表で即座に確認できます。

この画面は次の分析に使用します。

  • 今後 N 時点のタグ値の予測(需要予測・生産量予測など)
  • 過去データから統計的に逸脱した異常値の検知
  • アラームルールのしきい値を決めるための基準分析

パス: 現在の統合サイドバーには標準メニューとして表示されない場合があります。内部 URL は /forecast/index で、画面タイトルは 機械学習 です。

本ドキュメントは予測・異常診断の付加画面を説明します。左メニューを基準とした運用フローは コンソール操作と共通画面 を先にご参照ください。


画面構成

┌──────────────────────────────────────────────────────────────────┐
│ 🧠 기계학습 │ ← ① 상단
├─────────────────────┬────────────────────────────────────────────┤
│ │ │
│ 📄 양식 │ 📈 기계학습 결과 │
│ ───────────────── │ ────────────────────────────────────────│
│ ◯ 대상 태그 선택 │ [학습 데이터] [이상진단 건수] [실행 시간] │ ← 요약 카드
│ • 태그명 입력 │ │
│ │ ┌──────────────────────────────────────┐ │
│ ◯ 데이터 구간 │ │ │ │
│ • 학습 구간 (날짜) │ │ 결과 차트 (520px) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
領域位置表示
① 上部全幅ページタイトル
② 左側col-lg-3フォーム(入力フォーム) — 4 fieldset + 開始ボタン
③ 右側col-lg-9機械学習結果 — サマリーカード3種 + チャート + 2つの結果テーブル

上部 — ページタイトル

項目表示
ページタイトル🧠 「機械学習」

左側 — フォーム(入力フォーム)

左パネルのフォームは 4 グループ(<fieldset>)で構成されます。

1) 対象タグの選択

入力nameplaceholder説明
タグ名tag_name250px (青ボーダー 2px)「タグ名を入力」登録済みタグ一覧から自動補完で選択。選択と同時に hidden フィールド tag_id に保存

入力欄の右側には 🧭 アイコン + 「機械学習を実行するタグを選択してください。」という案内文が表示されます。

2) データ区間

入力name説明
学習区間learning_time250px (中央揃え、太字)開始~終了日時。クリックすると日付範囲選択が表示。フォーム送信時は hidden フィールド learning_date_from / learning_date_to で送信
サンプリング周期term200pxセレクタ — 「サンプリング周期」オプション (例: 1_MIN / 5_MIN / 30_MIN / 1_HOUR / 1_DAY などシステムに定義された周期一覧)

サンプリングとは?

オプション意味
原本(RAW)すべてのデータポイントをそのまま学習 — データ量が多く変動の速いタグ向け
サンプリング(スナップショット)一定周期ごとに代表値1つを抽出して学習 — 長期間の学習・計算コストを削減

hidden セレクタで sampling="LAST" が既定設定されます(最後の値を代表値として使用)。

3) 機械学習プロパティ

予測アルゴリズム (forecast_algorithm)

オプションラベル特性
LINEAR_REGRESSION (既定)Linear regression単純な線形トレンド — 高速で解釈が容易
ARIMAAuto-regressive Integrated Moving Average時系列の自己相関・季節性を活用
SMO_REGSupport vector machine for regression非線形パターン、ノイズに強い
GAUSSIAN_PROCESSESStochastic process確率的予測 + 不確実性の推定

予測件数 (forecast_count)

入力説明
テキスト入力200px (右揃え)予測する結果の件数(タイムスタンプ単位)

例: サンプリング周期 1_HOUR + 予測件数 24 = 今後24時間の予測

異常診断アルゴリズム (abnomal_algorithm)

オプションラベル特性
EGADS (既定)Seasonal-naive-based季節性を反映、運用データに一般的
DBSCANCluster-basedクラスタから外れる点を異常値とする
GAUSS_BASEDStatistical-based正規分布に基づく統計的異常値検知
HIL_OUTDistance-based距離ベースの異常値

尤度フィルタ (probability_filter)

入力意味
テキスト入力200px (右揃え)0~1 のしきい値。尤度がこの値以上のデータのみを異常データと判定

例: 0.95 を入力すると尤度 95% 以上の強い異常値のみを検知。値が小さいほど多くの異常値を捕捉しますが、誤検知が増えます。

4) 機械学習開始ボタン

ボタン動作
🚀 機械学習開始250px (青)入力検証後、バックエンドに学習を要求。実行中は右側のチャート領域に進行状況を表示。完了すると結果チャートと2つのテーブルが埋まる

右側 — 機械学習結果

サマリーカード3種

チャート上部の横型3分割カード(total_ml_co)。

カードID表示
学習データresult_learning_count学習に使用されたデータポイント数
異常診断件数result_abnomal_count検知された異常値の件数
実行時間result_text学習+予測処理に要した時間

実行前はすべて - と表示されます。実行直後に自動で埋まります。

結果チャート

チャート領域(data_chart、幅 100% × 高さ 520px)に以下が1画面で描画されます。

シリーズ意味
学習区間の実測値入力した学習期間の原本時系列
予測値学習後に予測した将来 N 時点
予測上限 (LIMIT_MAX)予測信頼区間の上限
予測下限 (LIMIT_MIN)予測信頼区間の下限
異常値マーカー異常診断で検知した時点に個別表示

チャートが空の場合は案内文が表示されます。

🤖 [機械学習イラスト]

対象タグを選択のうえ、機械学習を開始してください。

予測データテーブル

<fieldset>予測データ ラベル下のテーブル(forecast_data_table)。

カラム表示
No.60px行番号
タイムスタンプ200px予測時点
予測値自動アルゴリズムが算出した予測値
WEIGHT自動予測の重み(アルゴリズムごとに意味が異なる)
LIMIT_MIN自動予測下限
LIMIT_MAX自動予測上限

異常診断データテーブル

<fieldset>異常診断データ ラベル下のテーブル(abnomal_data_table)。

カラム表示
No.60px行番号
タイムスタンプ200px異常値が検知された時点
異常診断値200pxその時点の実測値
尤度 (PROBABILITY)自動異常値の確信度 (0~1、1 に近いほど強い異常値)

予測・異常診断アルゴリズム選択ガイド

運用データに適したアルゴリズムを選ぶ際の参考にしてください。

予測アルゴリズム

データ特性推奨アルゴリズム
単調な増加/減少トレンドLINEAR_REGRESSION
日/週単位の反復パターンARIMA
非線形でノイズが大きいデータSMO_REG
予測の不確実性も併せて確認したい場合GAUSSIAN_PROCESSES

異常診断アルゴリズム

データ特性推奨アルゴリズム
季節性のある一般的な運用データEGADS (既定)
多次元クラスタ分析が適した多変量DBSCAN
正規分布に近い安定データGAUSS_BASED
点間距離ベース(大域/局所異常)HIL_OUT

尤度フィルタガイド

効果
0.5弱い異常値まで検知 (誤検知の可能性 ↑)
0.8一般的な運用に適する
0.95強い異常値のみ検知 (確実な異常のみ)
0.99非常に強い異常値のみ (誤検知はほぼ無し、見逃しの可能性 ↑)

活用シナリオ

シナリオ設定例
モータ温度の24時間予測タグ=MOTOR-001.TEMP / 学習 7日 / サンプリング 1時間 / LINEAR_REGRESSION / 予測 24件
エネルギー消費の1週間予測タグ=POWER.kWh / 学習 30日 / サンプリング 1時間 / ARIMA / 予測 168件
品質測定値の異常値検知タグ=QUALITY.SCORE / 学習 14日 / サンプリング 5分 / EGADS / 尤度 0.9
振動センサの異常検出タグ=VIB-001.RMS / 学習 7日 / サンプリング RAW / DBSCAN / 尤度 0.95
アラームしきい値の決定安定運用1週間を学習 → GAUSS_BASED の LIMIT_MAX をアラームしきい値として採用

よくある質問

Q. 学習を開始しても結果がなかなか出ません。 A. 学習区間が長い、またはサンプリング周期が短いと時間がかかります。初回は学習区間を1~3日 + サンプリング周期1時間程度に軽く設定して時間を計測してください。

Q. 予測値が平坦になりすぎます。 A. 学習アルゴリズムが LINEAR_REGRESSION の場合は単調なトレンドのみを捉えます。周期性のあるデータであれば ARIMA に変更してみてください。

Q. 異常値が多すぎる / 少なすぎる。 A. 尤度フィルタ の値を調整してください。多すぎる場合は 0.9~0.95 に上げ、少なすぎる場合は 0.5~0.7 に下げてください。

Q. 学習区間が短いのは問題ですか? A. 学習区間が短すぎるとモデルが十分なパターンを学習できません。一般に 予測件数の10倍以上 を学習区間として設定することを推奨します。

Q. 結果テーブルの WEIGHT カラムは何を意味しますか? A. アルゴリズムによって異なります。回帰モデルでは予測の重み、確率モデルでは信頼度の尺度として使われます。一般のオペレータは LIMIT_MIN/LIMIT_MAX の信頼区間に着目していただければ十分です。

Q. 結果を他の人に渡したいのですが。 A. チャートはチャートのダウンロードアイコンから PNG 画像として、テーブルはブラウザの表コピーまたは右クリックメニューからコピーしてご利用ください。(CSV ダウンロードボタンは現在無効です)

Q. 同じタグで複数のアルゴリズムを比較したいです。 A. 各アルゴリズムで1回ずつ実行し、チャートの PNG を保存して外部ツールで並べて比較してください。異常診断アルゴリズムでは EGADS↔DBSCAN の比較がよく用いられます。

Q. 予測結果をアラームルールのしきい値として使えますか? A. はい。安定した学習結果の LIMIT_MAX/LIMIT_MIN を アラーム の EQL アラームしきい値に移して使うことで、統計ベースのしきい値を自動化できます。

Q. 学習結果を自動でアラームバンドに反映できますか? A. はい。フローflow_update_tag_alarm_band_numeric ノードを結線して自動化できます。


関連画面

  • データポイント — トレンド画面で原本データを視覚的に確認
  • アラーム — 学習結果のしきい値をアラームルールへ移行
  • 日次統計 — サイト・ライン・設備別の比較分析
  • フロー — 学習結果を自動適用する自動化構成