zqr10159 opened a new pull request, #3909: URL: https://github.com/apache/hertzbeat/pull/3909
This pull request introduces a new analysis module to the project, focused on time series forecasting and preprocessing. It adds a Maven module with its own dependencies, implements core algorithms for time series prediction (including a robust NLinear model and a lightweight Prophet-inspired model), and provides supporting infrastructure for data preprocessing and service abstraction. Key changes include: **Module Setup and Dependencies** - Added a new Maven module `hertzbeat-analysis` with its own `pom.xml`, specifying dependencies on core Hertzbeat modules, Spring Boot, and Apache Commons Math. Java 17 is set as the source/target version. **Core Algorithms for Time Series Forecasting** - Implemented `NLinearModel`, an industrial-grade robust time series forecasting model using ridge regression (L2 regularization) for stability and overfitting prevention. Includes logic for flat line detection and fallback strategies. - Added `TinyProphet`, a lightweight time series forecasting model inspired by Prophet, using OLS regression with Fourier features for seasonality and trend detection. - Created `PredictionResult` as a data class to encapsulate forecast values and confidence intervals. **Data Preprocessing** - Added `TimeSeriesPreprocessor` for resampling and interpolating time series data, handling missing values and aligning data to fixed time steps for model input. **Service Abstraction and Spring Integration** - Defined `AnalysisService` interface for model training and forecasting, establishing a contract for future service implementations. - Added `AnalysisModule` as a Spring configuration class to enable component scanning for the new analysis package. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
