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 only need to choose the learning range, sampling interval, and algorithm in the GUI to see the results immediately as a chart and tables.

This screen is used for the following analyses.

  • Forecasting tag values for the next N time points (demand forecasting, production volume 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 item in the current unified sidebar. The internal URL is /forecast/index and the screen title is Machine Learning.

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


Screen Layout​

┌──────────────────────────────────────────────────────────────────┐
│ 🧠 기계학습 │ ← ① 상단
├─────────────────────┬────────────────────────────────────────────┤
│ │ │
│ 📄 양식 │ 📈 기계학습 결과 │
│ ───────────────── │ ────────────────────────────────────────│
│ ◯ 대상 태그 선택 │ [학습 데이터] [이상진단 건수] [실행 시간] │ ← 요약 카드
│ • 태그명 입력 │ │
│ │ ┌──────────────────────────────────────┐ │
│ ◯ 데이터 구간 │ │ │ │
│ • 학습 구간 (날짜) │ │ 결과 차트 (520px) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
AreaPositionDisplay
① TopFull widthPage title
② Leftcol-lg-3Form (input panel) — 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 Panel)​

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

1) Target Tag Selection​

InputnameWidthplaceholderDescription
Tag nametag_name250px (2px blue border)"Enter tag name"Selected by autocomplete from the list of registered tags. Stored in the hidden field tag_id as soon as it is selected

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

2) Data Range​

InputnameWidthDescription
Learning rangelearning_time250px (center-aligned, bold)Start–end date and time. Clicking opens a date range picker. Passed as the hidden fields learning_date_from / learning_date_to when the form is submitted
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)Learns from every data point as-is — for tags with large data volumes and rapid variation
Sampling (snapshot)Extracts one representative value per interval for learning — reduces computation cost for long-term learning

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

3) Machine Learning Properties​

Prediction algorithm (forecast_algorithm)​

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

Number of predictions (forecast_count)​

InputWidthDescription
Text input200px (right-aligned)Number of prediction results to generate (in timestamp units)

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

Anomaly diagnosis algorithm (abnomal_algorithm)​

OptionLabelCharacteristics
EGADS (default)Seasonal-naive-basedReflects seasonality; generally suitable for operational data
DBSCANCluster-basedTreats points that deviate 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 value 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​

ButtonWidthBehavior
🚀 Start Machine Learning250px (blue)Validates the input and sends the learning request to the backend. While running, progress is shown in the chart area on the right. When finished, the result chart and the two tables are populated

Right — Machine Learning Results​

Three Summary Cards​

A horizontal three-part card row above the chart (total_ml_co).

CardIDDisplay
Learning dataresult_learning_countNumber of data points used for learning
Anomaly diagnosis countresult_abnomal_countNumber of outliers detected
Execution timeresult_textTime taken for learning + prediction processing

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

Result Chart​

The following are drawn together in the chart area (data_chart, 100% width × 520px height).

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

When the chart is empty, guidance text is displayed.

🤖 [Machine learning illustration]

Select a target tag, then start machine learning.

Prediction Data Table​

The table (forecast_data_table) under the Prediction Data label of <fieldset>.

ColumnWidthDisplay
No.60pxRow number
Timestamp200pxPrediction time point
Predicted valueAutoValue calculated by the algorithm
WEIGHTAutoPrediction weight (meaning varies by algorithm)
LIMIT_MINAutoPrediction lower limit
LIMIT_MAXAutoPrediction upper limit

Anomaly Diagnosis Data Table​

The table (abnomal_data_table) under the Anomaly Diagnosis Data label of <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; the closer to 1, the stronger the outlier)

Prediction / Anomaly Diagnosis Algorithm Selection Guide​

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

Prediction Algorithms​

Data characteristicsRecommended algorithm
Monotonically increasing/decreasing trendLINEAR_REGRESSION
Daily/weekly repeating patternsARIMA
Non-linear, high-noise dataSMO_REG
When you also want to see prediction uncertaintyGAUSSIAN_PROCESSES

Anomaly Diagnosis Algorithms​

Data characteristicsRecommended algorithm
General operational data with seasonalityEGADS (default)
Multivariate data suited to multi-dimensional 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)

Usage Scenarios​

ScenarioExample settings
24-hour motor temperature forecastTag=MOTOR-001.TEMP / 7-day learning / 1-hour sampling / LINEAR_REGRESSION / 24 predictions
One-week energy consumption forecastTag=POWER.kWh / 30-day learning / 1-hour sampling / ARIMA / 168 predictions
Outlier detection on quality measurementsTag=QUALITY.SCORE / 14-day learning / 5-minute sampling / EGADS / probability 0.9
Abnormality detection on a vibration sensorTag=VIB-001.RMS / 7-day learning / RAW sampling / DBSCAN / probability 0.95
Determining alarm thresholdsLearn from one week of stable operation → adopt the LIMIT_MAX of GAUSS_BASED as the alarm threshold

Frequently Asked Questions​

Q. Results do not appear quickly after starting learning. A. A long learning range or a short sampling interval takes a long time. For your first attempt, keep it light — a learning range of 1–3 days plus a sampling interval of about 1 hour — and measure the time.

Q. The predicted values come out too flat. A. If the learning algorithm is LINEAR_REGRESSION, it captures only a monotonic trend. If your data is periodic, try switching to ARIMA.

Q. Too many / too few outliers are 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 learning range acceptable? A. If the learning range is too short, the model cannot learn enough of the pattern. In general, we recommend a learning range of at least 10 times the number of predictions.

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

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

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

Q. Can prediction results be used as alarm rule thresholds? A. Yes. By transferring the LIMIT_MAX/LIMIT_MIN of a stable learning result into the EQL alarm threshold in Alarm, you can automate statistics-based thresholds.

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


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