Skip to main content

Predictive Analytics (Machine Learning)

Contents


Overview

The Predictive Analytics screen learns from time series tag data to forecast future values and detect outliers (anomaly diagnosis). Operators simply select the training range, sampling interval, and algorithm in the GUI, and the results are immediately available as charts and tables.

This screen is used for the following analyses:

  • Forecasting tag values for the next N time points (demand forecasting, production forecasting, etc.)
  • Detecting outliers that deviate statistically from historical data
  • Baseline analysis for determining alarm rule thresholds

Path: This may not appear as a default menu item in the current unified sidebar. The internal URL is /forecast/index and the screen title is Machine Learning.

This document describes the supplementary forecast/anomaly diagnosis screen. For the operational flow based on the left menu, refer first to Console Navigation and Common Screens.


Screen Layout

┌──────────────────────────────────────────────────────────────────┐
│ 🧠 기계학습 │ ← ① 상단
├─────────────────────┬────────────────────────────────────────────┤
│ │ │
│ 📄 양식 │ 📈 기계학습 결과 │
│ ───────────────── │ ────────────────────────────────────────│
│ ◯ 대상 태그 선택 │ [학습 데이터] [이상진단 건수] [실행 시간] │ ← 요약 카드
│ • 태그명 입력 │ │
│ │ ┌──────────────────────────────────────┐ │
│ ◯ 데이터 구간 │ │ │ │
│ • 학습 구간 (날짜) │ │ 결과 차트 (520px) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
AreaPositionDisplay
① TopFull widthPage title
② Leftcol-lg-3Form (input form) — 4 fieldsets + start button
③ Rightcol-lg-9Machine learning results — 3 summary cards + chart + two result tables

Top — Page Title

ItemDisplay
Page title🧠 "Machine Learning"

Left — Form (Input Form)

The form in the left panel consists of 4 groups (<fieldset>).

1) Target Tag Selection

InputnameWidthplaceholderDescription
Tag nametag_name250px (blue border 2px)"Enter tag name"Select from the registered tag list via autocomplete. Saved to the hidden field tag_id immediately upon selection

To the right of the input field, a 🧭 icon and the guidance text "Select the tag to run machine learning on." are displayed.

2) Data Range

InputnameWidthDescription
Training rangelearning_time250px (center-aligned, bold)Start–end date and time. Clicking opens a date range picker. Passed as hidden fields learning_date_from / learning_date_to on form submission
Sampling intervalterm200pxSelector — "Sampling interval" options (e.g., 1_MIN / 5_MIN / 30_MIN / 1_HOUR / 1_DAY and other intervals defined in the system)

What is sampling?

OptionMeaning
Raw (RAW)Trains on every data point as-is — for tags with large volumes and fast fluctuations
Sampling (snapshot)Extracts one representative value per interval for training — reduces long-range training and computation cost

sampling="LAST" is set by default via a hidden selector (uses the last value as the representative).

3) Machine Learning Properties

Forecast Algorithm (forecast_algorithm)

OptionLabelCharacteristics
LINEAR_REGRESSION (default)Linear regressionSimple linear trend — fast and easy to interpret
ARIMAAuto-regressive Integrated Moving AverageLeverages time series autocorrelation and seasonality
SMO_REGSupport vector machine for regressionNonlinear patterns, robust to noise
GAUSSIAN_PROCESSESStochastic processProbabilistic forecasting + uncertainty estimation

Number of Forecasts (forecast_count)

InputWidthDescription
Text input200px (right-aligned)Number of forecast results to produce (in timestamp units)

Example: sampling interval 1_HOUR + number of forecasts 24 = 24-hour forecast

Anomaly Diagnosis Algorithm (abnomal_algorithm)

OptionLabelCharacteristics
EGADS (default)Seasonal-naive-basedReflects seasonality, general-purpose for operational data
DBSCANCluster-basedTreats points deviating from clusters as outliers
GAUSS_BASEDStatistical-basedStatistical outlier detection based on the normal distribution
HIL_OUTDistance-basedDistance-based outliers

Probability Filter (probability_filter)

InputWidthMeaning
Text input200px (right-aligned)Threshold between 0 and 1. Only data whose probability value is at or above this threshold is judged as anomalous

Example: entering 0.95 detects only strong outliers with a probability of 95% or higher. The lower the value, the more outliers are caught, but false positives increase.

4) Start Machine Learning Button

ButtonWidthAction
🚀 Start Machine Learning250px (blue)Validates the inputs and sends a training request to the backend. Progress is shown in the chart area on the right while running. When complete, the result chart and both tables are populated

Right — Machine Learning Results

Three Summary Cards

Horizontal three-part cards above the chart (total_ml_co).

CardIDDisplay
Training dataresult_learning_countNumber of data points used for training
Anomaly diagnosis countresult_abnomal_countNumber of outliers detected
Execution timeresult_textTime taken for training + forecasting

Before execution, all show -. They are populated automatically right after execution.

Result Chart

The chart area (data_chart, width 100% × height 520px) renders the following on a single screen.

SeriesMeaning
Measured values over training rangeRaw time series for the specified training period
Forecast valuesThe N future time points forecast after training
Forecast upper limit (LIMIT_MAX)Upper bound of the forecast confidence interval
Forecast lower limit (LIMIT_MIN)Lower bound of the forecast confidence interval
Outlier markersMarked separately at time points detected by anomaly diagnosis

Guidance text is displayed when the chart is empty.

🤖 [Machine learning illustration]

Select a target tag, then start machine learning.

Forecast Data Table

The table (forecast_data_table) under the Forecast Data label in <fieldset>.

ColumnWidthDisplay
No.60pxRow number
Timestamp200pxForecast time point
Forecast valueAutoValue produced by the algorithm
WEIGHTAutoForecast weight (meaning varies by algorithm)
LIMIT_MINAutoForecast lower limit
LIMIT_MAXAutoForecast upper limit

Anomaly Diagnosis Data Table

The table (abnomal_data_table) under the Anomaly Diagnosis Data label in <fieldset>.

ColumnWidthDisplay
No.60pxRow number
Timestamp200pxTime point at which the outlier was detected
Anomaly diagnosis value200pxActual measured value at that time point
Probability (PROBABILITY)AutoConfidence in the outlier (0–1; closer to 1 means a stronger outlier)

Forecast/Anomaly Diagnosis Algorithm Selection Guide

Use this as a reference when choosing an algorithm suited to your operational data.

Forecast Algorithms

Data characteristicsRecommended algorithm
Monotonically increasing/decreasing trendLINEAR_REGRESSION
Daily/weekly repeating patternsARIMA
Nonlinear, high-noise dataSMO_REG
When you also want forecast uncertaintyGAUSSIAN_PROCESSES

Anomaly Diagnosis Algorithms

Data characteristicsRecommended algorithm
General operational data with seasonalityEGADS (default)
Multivariate data suited to multidimensional cluster analysisDBSCAN
Stable data close to a normal distributionGAUSS_BASED
Based on distance between points (global/local anomalies)HIL_OUT

Probability Filter Guide

ValueEffect
0.5Detects even weak outliers (higher chance of false positives)
0.8Suitable for general operation
0.95Detects only strong outliers (definite anomalies only)
0.99Only very strong outliers (almost no false positives, higher chance of misses)

Use Cases

ScenarioExample settings
24-hour motor temperature forecasttag=MOTOR-001.TEMP / 7-day training / 1-hour sampling / LINEAR_REGRESSION / 24 forecasts
One-week energy consumption forecasttag=POWER.kWh / 30-day training / 1-hour sampling / ARIMA / 168 forecasts
Outlier detection on quality measurementstag=QUALITY.SCORE / 14-day training / 5-minute sampling / EGADS / probability 0.9
Abnormal vibration sensor detectiontag=VIB-001.RMS / 7-day training / RAW sampling / DBSCAN / probability 0.95
Determining alarm thresholdsTrain on one week of stable operation → adopt the LIMIT_MAX from GAUSS_BASED as the alarm threshold

FAQ

Q. Results are slow to appear after starting training. A. A long training range or a short sampling interval takes longer. For a first attempt, keep it light — a training range of 1–3 days with a 1-hour sampling interval — and measure the time.

Q. The forecast values come out too flat. A. If the training algorithm is LINEAR_REGRESSION, it only captures monotonic trends. For data with periodicity, try switching to ARIMA.

Q. Too many / too few outliers are being detected. A. Adjust the probability filter value. If too many are detected, raise it to 0.9–0.95; if too few, lower it to 0.5–0.7.

Q. Is a short training range a problem? A. If the training range is too short, the model cannot learn enough patterns. In general, we recommend a training range of at least 10 times the number of forecasts.

Q. What does the WEIGHT column in the result table mean? A. It varies by algorithm. In regression models it is the forecast weight; in probabilistic models it serves as a confidence measure. General operators should focus more on the LIMIT_MIN/LIMIT_MAX confidence interval.

Q. I want to share the results with someone else. A. For the chart, use the chart's download icon to get a PNG image; for tables, use the browser's table copy or the right-click menu. (The CSV download button is currently disabled.)

Q. I want to compare several algorithms on the same tag. A. Run each algorithm once, save the chart as PNG, and compare them side by side in an external tool. For anomaly diagnosis algorithms, EGADS↔DBSCAN comparison is common.

Q. Can forecast results be used as alarm rule thresholds? A. Yes. Transfer the LIMIT_MAX/LIMIT_MIN of a stable training result to the EQL alarm threshold in Alarm to automate statistics-based thresholds.

Q. Can training results be applied to alarm bands automatically? A. Yes. You can automate this by wiring the flow_update_tag_alarm_band_numeric node in Flow.


  • Data Point — Visually inspect raw data on the trend screen
  • Alarm — Transfer thresholds from training results into alarm rules
  • Daily Statistics — Comparative analysis by site, line, and equipment
  • Flow — Automation setup that applies training results automatically