هذا الريبو هو تنفيذ Pytorch الرسمي لـ LTSF-Linar: "هل المحولات فعالة للتنبؤ بسلسلة زمنية؟".
[2024/01/28] تم تضمين نموذجنا في NeuralForecast. شكر خاص للمساهم cchallu!
[2022/11/23] قبلت AAAI 2023 مع ثلاثة قبول قوي! نطلق أيضًا معيارًا للتنبؤ بسلسلة زمنية طويلة الأجل لمزيد من البحث.
[2022/08/25] نقوم بتحديث ورقتنا من خلال تحليلات شاملة حول سبب عدم عمل المحولات LTSF الحالية بشكل جيد في مشكلة LTSF!
[2022/08/25] إلى جانب Dlinear ، نحن متحمسون لإضافة نموذجين خطيين إلى الورقة وهذا الريبو. الآن لدينا عائلة LTSF-Linar!
[2022/08/25] نقوم بتحديث بعض البرامج النصية من LTSF-Linar.
إلى جانب LTSF-Linar ، فإننا نقدم خمسة محولات تنبؤ مهمة لإعادة تنفيذ النتائج في الورقة.
نحن نقدم جميع ملفات البرنامج النصي للتجربة في ./scripts :
| الملفات | تفسير |
|---|---|
| فترة طويلة | مهمة التنبؤ بسلسلة زمنية طويلة الأجل |
| exp-slowbackwindow | ادرس تأثير أحجام النوافذ المختلفة |
| expedding | دراسة آثار استراتيجيات التضمين المختلفة |
هذا الرمز مبني ببساطة على قاعدة رمز التورم التلقائي. نحن نقدر GitHub Repos التالية كثيرًا لقاعدة الكود أو مجموعات البيانات القيمة:
إن تنفيذ المؤسسة التلقائية والمخبر والمحول من https://github.com/thuml/autoformer
تنفيذ FedFormer من https://github.com/maziqing/fedformer
تنفيذ pyraformer هو من https://github.com/alipay/pyraformer
LTSF-Linar هي مجموعة من النماذج الخطية.
على الرغم من أن LTSF-Linar بسيط ، إلا أنه يحتوي على بعض الخصائص المقنعة:
التنبؤ أحادي المتغير:
التنبؤ متعدد المتغيرات:
يتفوق LTSF-Linar على جميع الأساليب القائمة على المحولات بهامش كبير.
مقارنة كفاءة الطريقة مع حجم نافذة النظر 96 وخطوات التنبؤ 720 على الكهرباء. Macs هي عدد العمليات المضاعفة. نستخدم Dlinear للمقارنة نظرًا لأنه يتمتع بتكلفة مزدوجة في LTSF-Linar. متوسط وقت الاستنتاج 5 أشواط.
أولاً ، يرجى التأكد من تثبيت كوندا. ثم ، يمكن تثبيت بيئتنا بواسطة:
conda create -n LTSF_Linear python=3.6.9
conda activate LTSF_Linear
pip install -r requirements.txt
يمكنك الحصول على جميع المعايير التسعة من Google Drive المتوفرة في المؤسسة التلقائية. جميع مجموعات البيانات مملوءة مسبقًا ويمكن استخدامها بسهولة.
mkdir dataset
يرجى وضعهم في دليل ./dataset
scripts/ ، نقدم تنفيذ النموذج Dlinear/AutoFormer/Informer/OfferFEDformer/scripts/ ، نقدم تطبيق FedFormerPyraformer/scripts/ ، نقدم تنفيذ pyraformerعلى سبيل المثال:
لتدريب LTSF-Linar على مجموعة بيانات معدل التبادل ، يمكنك استخدام scripts/EXP-LongForecasting/Linear/exchange_rate.sh :
sh scripts/EXP-LongForecasting/Linear/exchange_rate.sh
سيبدأ تدريب Dlinear بشكل افتراضي ، سيتم عرض النتائج في logs/LongForecasting . يمكنك تحديد اسم النموذج في البرنامج النصي. (خطي ، dlinear ، nlinerear)
جميع البرامج النصية حول استخدام LTSF-Linar على مهمة التنبؤ الطويلة في scripts/EXP-LongForecasting/Linear/ ، يمكنك تشغيلها بطريقة مماثلة. تبلغ نافذة البحث الافتراضية في البرامج النصية 336 ، وتحقيق LTSF-Linar بشكل عام نتائج أفضل مع نافذة ذات مظهر أطول كما هو مبلل في الورقة.
البرامج النصية حول حجم نافذة النظر والتنبؤ الطويل لـ FedFormer و Pyraformer موجودة في FEDformer/scripts و Pyraformer/scripts ، على التوالي. لتشغيلها ، تحتاج إلى أول cd FEDformer أو cd Pyraformer . بعد ذلك ، يمكنك استخدام SH لتشغيلها بطريقة مماثلة. سيتم تخزين السجلات في logs/ .
كل تجربة في scripts/EXP-LongForecasting/Linear/ تأخذ 5 دقائق 20 دقيقة. بالنسبة إلى البرامج النصية الأخرى للمحولات ، نظرًا لأننا نضع جميع التجارب ذات الصلة في ملف نص واحد ، فإن تشغيلها مباشرة سيستغرق 8 ساعات في اليوم. يمكنك الاحتفاظ بالتجارب التي تهتم بها والتعليق على الآخرين.
كما هو موضح في ورقتنا ، يمكن أن تكشف أوزان LTSF-Linar عن بعض خصائص البيانات ، أي الدورية. على سبيل المثال ، نحن نقدم تصور الوزن لـ Dlinear في weight_plot.py . لتشغيل التصور ، تحتاج إلى إدخال مسار النموذج (model_name) من Dlinear (دليل النموذج في ./checkpoint افتراضيًا). للحصول على أنماط سلسة وواضحة ، يمكنك استخدام التهيئة التي قدمناها في ملف النماذج الخطية.

إذا وجدت هذا المستودع مفيدًا لعملك ، فيرجى التفكير في الإشارة إلى ذلك على النحو التالي:
@inproceedings { Zeng2022AreTE ,
title = { Are Transformers Effective for Time Series Forecasting? } ,
author = { Ailing Zeng and Muxi Chen and Lei Zhang and Qiang Xu } ,
journal = { Proceedings of the AAAI Conference on Artificial Intelligence } ,
year = { 2023 }
}يرجى تذكر الاستشهاد بجميع مجموعات البيانات ومقارنة الأساليب إذا كنت تستخدمها في تجاربك.