Predictive Analytics (Machine Learning)
Contents
- Overview
- Screen Layout
- Top — Page Title
- Left — Form (Input Panel)
- Right — Machine Learning Results
- Prediction / Anomaly Diagnosis Algorithm Selection Guide
- Usage Scenarios
- Frequently Asked Questions
- Related Screens
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) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
| Area | Position | Display |
|---|---|---|
| ① Top | Full width | Page title |
| ② Left | col-lg-3 | Form (input panel) — 4 fieldsets + start button |
| ③ Right | col-lg-9 | Machine learning results — 3 summary cards + chart + two result tables |
Top — Page Title
| Item | Display |
|---|---|
| Page title | 🧠 "Machine Learning" |
Left — Form (Input Panel)
The form in the left panel consists of 4 groups (<fieldset>).
1) Target Tag Selection
| Input | name | Width | placeholder | Description |
|---|---|---|---|---|
| Tag name | tag_name | 250px (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
| Input | name | Width | Description |
|---|---|---|---|
| Learning range | learning_time | 250px (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 interval | term | 200px | Selector — "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?
| Option | Meaning |
|---|---|
| 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)
| Option | Label | Characteristics |
|---|---|---|
LINEAR_REGRESSION (default) | Linear regression | Simple linear trend — fast and easy to interpret |
ARIMA | Auto-regressive Integrated Moving Average | Uses time series autocorrelation and seasonality |
SMO_REG | Support vector machine for regression | Non-linear patterns, robust against noise |
GAUSSIAN_PROCESSES | Stochastic process | Probabilistic forecasting + uncertainty estimation |
Number of predictions (forecast_count)
| Input | Width | Description |
|---|---|---|
| Text input | 200px (right-aligned) | Number of prediction results to generate (in timestamp units) |
Example: sampling interval
1_HOUR+ number of predictions24= 24-hour forecast
Anomaly diagnosis algorithm (abnomal_algorithm)
| Option | Label | Characteristics |
|---|---|---|
EGADS (default) | Seasonal-naive-based | Reflects seasonality; generally suitable for operational data |
DBSCAN | Cluster-based | Treats points that deviate from clusters as outliers |
GAUSS_BASED | Statistical-based | Statistical outlier detection based on the normal distribution |
HIL_OUT | Distance-based | Distance-based outliers |
Probability filter (probability_filter)
| Input | Width | Meaning |
|---|---|---|
| Text input | 200px (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.95detects 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
| Button | Width | Behavior |
|---|---|---|
| 🚀 Start Machine Learning | 250px (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).
| Card | ID | Display |
|---|---|---|
| Learning data | result_learning_count | Number of data points used for learning |
| Anomaly diagnosis count | result_abnomal_count | Number of outliers detected |
| Execution time | result_text | Time 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).
| Series | Meaning |
|---|---|
| Measured values in learning range | Raw time series for the specified learning period |
| Predicted values | The 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 markers | Marked 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>.
| Column | Width | Display |
|---|---|---|
| No. | 60px | Row number |
| Timestamp | 200px | Prediction time point |
| Predicted value | Auto | Value calculated by the algorithm |
| WEIGHT | Auto | Prediction weight (meaning varies by algorithm) |
| LIMIT_MIN | Auto | Prediction lower limit |
| LIMIT_MAX | Auto | Prediction upper limit |
Anomaly Diagnosis Data Table
The table (abnomal_data_table) under the Anomaly Diagnosis Data label of <fieldset>.
| Column | Width | Display |
|---|---|---|
| No. | 60px | Row number |
| Timestamp | 200px | Time point at which the outlier was detected |
| Anomaly diagnosis value | 200px | Actual measured value at that time point |
| Probability (PROBABILITY) | Auto | Confidence 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 characteristics | Recommended algorithm |
|---|---|
| Monotonically increasing/decreasing trend | LINEAR_REGRESSION |
| Daily/weekly repeating patterns | ARIMA |
| Non-linear, high-noise data | SMO_REG |
| When you also want to see prediction uncertainty | GAUSSIAN_PROCESSES |
Anomaly Diagnosis Algorithms
| Data characteristics | Recommended algorithm |
|---|---|
| General operational data with seasonality | EGADS (default) |
| Multivariate data suited to multi-dimensional cluster analysis | DBSCAN |
| Stable data close to a normal distribution | GAUSS_BASED |
| Based on distance between points (global/local anomalies) | HIL_OUT |
Probability Filter Guide
| Value | Effect |
|---|---|
0.5 | Detects even weak outliers (higher chance of false positives) |
0.8 | Suitable for general operation |
0.95 | Detects only strong outliers (definite anomalies only) |
0.99 | Only very strong outliers (almost no false positives, higher chance of misses) |
Usage Scenarios
| Scenario | Example settings |
|---|---|
| 24-hour motor temperature forecast | Tag=MOTOR-001.TEMP / 7-day learning / 1-hour sampling / LINEAR_REGRESSION / 24 predictions |
| One-week energy consumption forecast | Tag=POWER.kWh / 30-day learning / 1-hour sampling / ARIMA / 168 predictions |
| Outlier detection on quality measurements | Tag=QUALITY.SCORE / 14-day learning / 5-minute sampling / EGADS / probability 0.9 |
| Abnormality detection on a vibration sensor | Tag=VIB-001.RMS / 7-day learning / RAW sampling / DBSCAN / probability 0.95 |
| Determining alarm thresholds | Learn 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.
Related Screens
- 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