الأخبار التكنولوجية والاستعراضات والنصائح!

الكشف الموسمي مع تحويل فورييه السريع (FFT) وبايثون – نحو الذكاء الاصطناعي

ستساعدك المقالة التالية: الكشف الموسمي مع تحويل فورييه السريع (FFT) وبايثون – نحو الذكاء الاصطناعي

التعلم الالي

اكتشف الموسمية بسرعة باستخدام FFT في Python

التوقع

التوقع هي إحدى عمليات التنبؤ بالمستقبل بناءً على البيانات السابقة والحالية. ترتبط معظم مشكلات التنبؤ ببيانات السلاسل الزمنية (أي ما هو بيع المنتج أ الشهر القادم).

يمكن أن يكون التنبؤ ببعض المشكلات أسهل من التنبؤ بها. تعتمد إمكانية التنبؤ بحدث أو كمية على عدة عوامل ، بعضها:

  1. فهم العوامل المساهمة في النتيجة ؛
  2. توافر البيانات؛
  3. تقنية التنبؤ أو خوارزمية التعلم.

في كثير من الأحيان ، هناك العديد من الطرق في حل التوقعات بدقة ، ، ولكن لا تكرر الأحداث الماضية التي لن تحدث مرة أخرى.

الموسمية وحالات الاستخدام

في بيانات السلاسل الزمنية ، تشير الموسمية إلى وجود البعض فترات منتظمة معينة ، أو تباين دوري يمكن التنبؤ به اعتمادًا على الإطار الزمني المحدد (أي على أساس أسبوعي ، على أساس شهري). بعض الأمثلة على الموسمية هي زيادة المبيعات خلال عيد الميلاد ، والحجوزات الأعلى خلال فترة العطلات.

يمكن أن يؤدي اكتشاف الموسمية في بيانات السلاسل الزمنية إلى تحسين التنبؤ والكشف عن بعض الرؤى الخفية ويؤدي إلى البصيرة والتوصية. بشكل عام ، يمكن تمثيل توقعات بيانات السلاسل الزمنية على ؛

حيث Y هو المقياس ؛ يمثل S الموسمية ؛ يمثل T الاتجاهات ؛ و e هو مصطلح الخطأ.

فيما يلي بعض حالات الاستخدام الرئيسية:

  • سلوك الشحن ؛
  • صفحة معينة ، أو سلوك تصفح التطبيق ؛
  • التنبؤ بالمبيعات والطلب ؛
  • التنبؤ بدرجة الحرارة.

هناك العديد من الطرق لاكتشاف الموسمية في بيانات السلاسل الزمنية. ومع ذلك ، في هذا المنشور ، سنركز على FFT (تحويل فورييه السريع).

FFT في بايثون

أ تحويل فورييه السريع (FFT) هي خوارزمية تحسب تحويل فورييه المنفصل (DFT) لتسلسل. إنه يحول إشارة من البيانات الأصلية ، وهو الوقت المناسب لهذه الحالة ، إلى التمثيل في مجال التردد.

لوضع هذا في مصطلح أبسط ، يأخذ تحويل فورييه بيانات تستند إلى الوقت ، ويقيس كل دورة ممكنة ، ويعيد “وصفة الدورة” الإجمالية (السعة ، وسرعة الإزاحة والدوران لكل دورة تم العثور عليها).

دعنا نوضح هذا في تنفيذ Python باستخدام موجة جيبية.

من البرنامج النصي ، قمت بتوليد موجة جيبية لمدة ثانيتين ولديها 640 نقطة (موجة تردد 12 هرتز تم أخذ عينات منها عند 32 مرة من عامل زيادة العينات ، وهو 2 × 32 × 10 = 640). ثم يمكننا حساب FT لهذه البيانات وتصور المخرجات.

من النتيجة ، يمكننا أن نرى أن FT توفر مكون التردد الموجود في الموجة الجيبية. يوضح الشكل التالي كيف نضيف موجات متعددة في موجة واحدة ونستخدم FFT لاكتشاف الذروة.

لتوضيح كيف يمكن أن تساعد FT في الكشف عن الموسمية ، يوضح الشكل التالي كيف يتم الجمع بين موجتين مختلفتين واستخدام FT للكشف عن الموسمية. يولد FT قمتين وفقًا لموجة هرتز على التوالي.

الآن ، دعنا نرى التنفيذ على حالات الاستخدام الحقيقية. في هذا العرض التوضيحي ، سوف نكتشف الموسمية لانبعاثات غاز ثاني أكسيد الكربون من الغاز الطبيعي.

قمنا بعد ذلك بتطبيع الأصل عن طريق طرح طريقة الوسيط () وضرب قيمة وظيفة النافذة (باستخدام بلاكمان لهذه البيانات). يرجى ملاحظة أن وظيفة النافذة يجب أن تكون مناسبة مع مجموعة البيانات التي لديك ، لمزيد من الدراسة حول وظيفة النافذة المتاحة ، يمكنك الرجوع إلى هذا لاستكشاف نوع مختلف من وظيفة النافذة.

الآن يمكننا حساب ناتج FT ورسم الرسم البياني ، تم حذف أول عدد قليل من سلال التردد لأن هذه النقاط تمثل خط الأساس وليست مفيدة للتحليل.

بناءً على المخرجات ، يمكننا أن نرى الإشارات القوية عند x = 1.010 ، والتي يمكننا تحويلها إلى سنة ، وهي 0.99 سنة (أو 11.89 شهرًا ، تعتمد على هدف التنفيذ).

ملاحظة النهاية

كما نرى ، يمكن أن تساعدنا FT في التقاط الموسمية ويمكن استخدامها لتحليل بيانات السلاسل الزمنية. تم تصميم طريقة FFT أيضًا في حزمة برامج متنوعة ويمكن استخدامها بسهولة فيما يتعلق بأي لغة برمجة.

شكرا على القراءة والتعلم السعيد !!! يمكنك عرض دفتر الملاحظات مع تنفيذ التعليمات البرمجية الكامل هنا.


تم نشر اكتشاف الموسمية باستخدام Fast Fourier Transform (FFT) و Python في الأصل في Towards AI – مجلة العلوم متعددة التخصصات على المتوسط ​​، حيث يواصل الأشخاص المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

تم النشر عبر نحو الذكاء الاصطناعي