{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/cyclenet-enhancing-time-series-forecasting","title":"CycleNet: Enhancing Time Series Forecasting through Modeling Periodic Patterns","arxiv_id":"2409.18479","date":"2024-09-27","proceeding":null,"authors":["Shengsheng Lin","Weiwei Lin","Xinyi Hu","Wentai Wu","Ruichao Mo","Haocheng Zhong"],"abstract":"The stable periodic patterns present in time series data serve as the foundation for conducting long-horizon forecasts. In this paper, we pioneer the exploration of explicitly modeling this periodicity to enhance the performance of models in long-term time series forecasting (LTSF) tasks. Specifically, we introduce the Residual Cycle Forecasting (RCF) technique, which utilizes learnable recurrent cycles to model the inherent periodic patterns within sequences, and then performs predictions on the residual components of the modeled cycles. Combining RCF with a Linear layer or a shallow MLP forms the simple yet powerful method proposed in this paper, called CycleNet. CycleNet achieves state-of-the-art prediction accuracy in multiple domains including electricity, weather, and energy, while offering significant efficiency advantages by reducing over 90% of the required parameter quantity. Furthermore, as a novel plug-and-play technique, the RCF can also significantly improve the prediction accuracy of existing models, including PatchTST and iTransformer. The source code is available at: https://github.com/ACAT-SCUT/CycleNet.","url_abs":"https://arxiv.org/abs/2409.18479v2","url_pdf":"https://arxiv.org/pdf/2409.18479v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"cyclenet-enhancing-time-series-forecasting","repo_url":"https://github.com/ACAT-SCUT/CycleNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series-forecasting","task_name":"Time Series Forecasting"}],"methods":[{"method_slug":"linear-layer","method_name":"Linear Layer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/time-series-forecasting-on-electricity-192","task":"Time Series Forecasting","dataset":"Electricity (192)","model":"CycleNet","rank_in_archive_order":2,"of":8,"metrics":{"MAE":"0.237","MSE":"0.144"},"uses_additional_data":false},{"leaderboard":"/sota/time-series-forecasting-on-electricity-96","task":"Time Series Forecasting","dataset":"Electricity (96)","model":"CycleNet","rank_in_archive_order":2,"of":11,"metrics":{"MAE":"0.221","MSE":"0.126"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2409.18479","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.18479"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/ACAT-SCUT/CycleNet","reach":null}],"summary":{"ran":1,"unverified":1},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"8d74ec9503041e58","entry":"Model","repo":"ACAT-SCUT/CycleNet","repo_kind":"official","path":"models/CycleNet.py","file_url":"https://github.com/ACAT-SCUT/CycleNet/blob/HEAD/models/CycleNet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8d74ec9503041e58"}},{"code_sha256_prefix":"c77542cda5200c5c","entry":"RecurrentCycle","repo":"ACAT-SCUT/CycleNet","repo_kind":"official","path":"models/CycleNet.py","file_url":"https://github.com/ACAT-SCUT/CycleNet/blob/HEAD/models/CycleNet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c77542cda5200c5c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}