Predictive Analytics (Machine Learning)
Contents
- Overview
- Screen Layout
- Top — Page Title
- Left — Form (Input Form)
- Right — Machine Learning Results
- Forecast/Anomaly Diagnosis Algorithm Selection Guide
- Use Cases
- FAQ
- Related Screens
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) │ │
│ • 샘플링 주기 │ │ │ │
│ │ └──────────────────────────────────────┘ │
│ ◯ 기계학습 속성 │ │
│ • 예측 알고리즘 │ ◯ 예측 데이터 (테이블) │
│ • 예측 갯수 │ ◯ 이상진단 데이터 (테이블) │
│ • 이상진단 알고리즘 │ │
│ • 개연성 │ │
│ │ │
│ [🚀 기계학습 시작] │ │
└─────────────────────┴────────────────────────────────────────────┘
| Area | Position | Display |
|---|---|---|
| ① Top | Full width | Page title |
| ② Left | col-lg-3 | Form (input form) — 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 Form)
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 (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
| Input | name | Width | Description |
|---|---|---|---|
| Training range | learning_time | 250px (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 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) | 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)
| Option | Label | Characteristics |
|---|---|---|
LINEAR_REGRESSION (default) | Linear regression | Simple linear trend — fast and easy to interpret |
ARIMA | Auto-regressive Integrated Moving Average | Leverages time series autocorrelation and seasonality |
SMO_REG | Support vector machine for regression | Nonlinear patterns, robust to noise |
GAUSSIAN_PROCESSES | Stochastic process | Probabilistic forecasting + uncertainty estimation |
Number of Forecasts (forecast_count)
| Input | Width | Description |
|---|---|---|
| Text input | 200px (right-aligned) | Number of forecast results to produce (in timestamp units) |
Example: sampling interval
1_HOUR+ number of forecasts24= 24-hour forecast
Anomaly Diagnosis Algorithm (abnomal_algorithm)
| Option | Label | Characteristics |
|---|---|---|
EGADS (default) | Seasonal-naive-based | Reflects seasonality, general-purpose for operational data |
DBSCAN | Cluster-based | Treats points deviating 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 threshold 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 | Action |
|---|---|---|
| 🚀 Start Machine Learning | 250px (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).
| Card | ID | Display |
|---|---|---|
| Training data | result_learning_count | Number of data points used for training |
| Anomaly diagnosis count | result_abnomal_count | Number of outliers detected |
| Execution time | result_text | Time 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.
| Series | Meaning |
|---|---|
| Measured values over training range | Raw time series for the specified training period |
| Forecast values | The 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 markers | Marked 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>.
| Column | Width | Display |
|---|---|---|
| No. | 60px | Row number |
| Timestamp | 200px | Forecast time point |
| Forecast value | Auto | Value produced by the algorithm |
| WEIGHT | Auto | Forecast weight (meaning varies by algorithm) |
| LIMIT_MIN | Auto | Forecast lower limit |
| LIMIT_MAX | Auto | Forecast upper limit |
Anomaly Diagnosis Data Table
The table (abnomal_data_table) under the Anomaly Diagnosis Data label in <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; 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 characteristics | Recommended algorithm |
|---|---|
| Monotonically increasing/decreasing trend | LINEAR_REGRESSION |
| Daily/weekly repeating patterns | ARIMA |
| Nonlinear, high-noise data | SMO_REG |
| When you also want forecast uncertainty | GAUSSIAN_PROCESSES |
Anomaly Diagnosis Algorithms
| Data characteristics | Recommended algorithm |
|---|---|
| General operational data with seasonality | EGADS (default) |
| Multivariate data suited to multidimensional 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) |
Use Cases
| Scenario | Example settings |
|---|---|
| 24-hour motor temperature forecast | tag=MOTOR-001.TEMP / 7-day training / 1-hour sampling / LINEAR_REGRESSION / 24 forecasts |
| One-week energy consumption forecast | tag=POWER.kWh / 30-day training / 1-hour sampling / ARIMA / 168 forecasts |
| Outlier detection on quality measurements | tag=QUALITY.SCORE / 14-day training / 5-minute sampling / EGADS / probability 0.9 |
| Abnormal vibration sensor detection | tag=VIB-001.RMS / 7-day training / RAW sampling / DBSCAN / probability 0.95 |
| Determining alarm thresholds | Train 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.
Related Screens
- 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