## Time Series Forecasting with LSTM
### التنبؤ بالسلاسل الزمنية باستخدام الشبكات العصبية LSTM
هذا المشروع يستعرض استخدام **شبكات الذاكرة طويلة وقصيرة المدى (LSTM)** للتنبؤ بقيم مستقبلية ضمن سلسلة زمنية بدقة عالية. تم استخدام بيانات عالية الدقة تم جمعها كل 15 دقيقة، ويهدف المشروع إلى التقاط الأنماط التاريخية والتنبؤ بالخطوات الزمنية المستقبلية.
---
### ️ البيانات
* **الملف:** `D_15m_with_time.csv`
* **عدد العينات:** 35,424
* **كل عينة تمثل:** فترة زمنية مدتها 15 دقيقة
#### الأعمدة:
| العمود | الوصف |
| ------- | ----------------------------------------------- |
| `Date` | تاريخ التسجيل (مثال: 2018-03-28) |
| `Time` | توقيت التسجيل (مثال: 00:00:00) |
| `Count` | القيمة العددية التي سيتم التنبؤ بها (مثال: 123) |
---
### ? خطوات تنفيذ المشروع
#### 1. ? **المعالجة المسبقة للبيانات**
* دمج عمودَي `Date` و`Time` في عمود واحد `Datetime`.
* استخدام `MinMaxScaler` لتطبيع القيم بين 0 و1.
* إنشاء ميزات زمنيّة متأخرة (7 خطوات) لتمثيل الاعتماد الزمني.
#### 2. **تقسيم البيانات**
* **تدريب:** 80% (28,339 عينة)
* **تحقق:** 10% (3,542 عينة)
* **اختبار:** 10% (3,543 عينة)
#### 3. **تحسين المعلمات باستخدام ARDE-N-BEATES**
* خوارزمية ذكية لاستكشاف أفضل توليفة من المعلمات:
* عدد وحدات LSTM
* معدل التعلم
* حجم الدُفعة (Batch size)
* يتم تقييم كل مجموعة من المعلمات حسب **خسارة التحقق (Validation Loss)**، لاختيار الأفضل.
#### 4. ️ **تعريف النموذج وتدريبه**
* تعريف نموذج LSTM باستخدام المعلمات المُحسّنة.
* التدريب باستخدام إيقاف مبكر (Early Stopping) لتفادي الإفراط في التعلّم.
#### 5. **التنبؤ والتقييم**
* تنبؤ على مجموعة الاختبار.
* تقييم الأداء باستخدام المقاييس التالية:
| المقياس | القيمة |
| ------- | ------- |
| MSE | 2216.97 |
| MAPE | 7.07% |
| MAE | 32.51 |
| RMSE | 47.08 |
---
### المتطلبات
```bash
pip install tensorflow numpy pandas matplotlib seaborn scikit-learn statsmodels keras tslearn
```
---
### ▶️ طريقة التشغيل
1. تأكد من تثبيت Python 3.x.
2. ثبت الحزم المطلوبة (كما في الأعلى).
3. ضع ملف `D_15m_with_time.csv` في نفس مجلد دفتر Jupyter `base_15min.ipynb`.
4. افتح Jupyter Notebook:
```bash
jupyter notebook
```
5. شغّل خلايا الملف `base_15min.ipynb` بالترتيب.
---
### النتائج
تمكن النموذج LSTM بعد تحسين المعلمات باستخدام **ARDE-N-BEATES** من تحقيق أداء دقيق:
* **MSE:** 2216.97
* **MAPE:** 7.07%
* **MAE:** 32.51
* **RMSE:** 47.08
هذه القيم تشير إلى قدرة النموذج على التنبؤ بالقيم المستقبلية بدقة جيدة، مما يجعل هذا الحل مناسبًا للتطبيقات الزمنية ذات الدقة العالية.