TSFresh: استخراج الميزات من السلاسل الزمنية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هي TSFresh ولماذا تحتاجها؟

TSFresh (اختصاراً لـ Time Series Feature extraction based on scalable hypothesis tests) هي مكتبة Python قوية، صُممت خصيصاً لاستخراج عدد كبير من الميزات تلقائياً من السلاسل الزمنية. طورها فريق من الباحثين في ألمانيا، وتحل هذه المكتبة واحدة من أكثر المهام استهلاكاً للوقت في مجال تحليل البيانات، وهي تحويل البيانات الزمنية الخام إلى خصائص معلوماتية مناسبة لتعلم الآلة.

المهمة الأساسية لـ TSFresh هي توفير وقت المحللين من خلال أتمتة عملية إنشاء الميزات للسلاسل الزمنية يدوياً. بدلاً من ذلك، تقوم المكتبة تلقائياً بتوليد مئات الخصائص الإحصائية المختلفة، ثم تستخدم طرق اختبار الفرضيات الإحصائية لاختيار الأكثر أهمية منها.

بنية TSFresh ومبادئ عملها

تم بناء TSFresh على مبدأ اختيار الميزات المدعوم إحصائياً. تتبع المكتبة نهجاً من مرحلتين: أولاً، تستخرج أكبر عدد ممكن من الميزات من السلاسل الزمنية، ثم تطبق اختبارات إحصائية لتحديد أهميتها بالنسبة للمتغير الهدف.

تتضمن البنية الداخلية للمكتبة عدة مكونات رئيسية:

  • وحدة استخراج الميزات بأكثر من 60 دالة مختلفة
  • نظام تصفية إحصائي يعتمد على قيم p-value
  • خوارزميات محسّنة للعمل مع كميات كبيرة من البيانات
  • تكامل مع مكتبات تعلم الآلة الشائعة

مزايا استخدام TSFresh

تقدم TSFresh مجموعة من المزايا الهامة للعمل مع السلاسل الزمنية:

أتمتة هندسة الميزات - تقوم المكتبة بتوليد مئات الميزات تلقائياً، مما يوفر وقتاً كبيراً للمطور.

الدعم الإحصائي - جميع الميزات المختارة تخضع لاختبار إحصائي صارم للتأكد من أهميتها.

قابلية التوسع - دعم المعالجة المتوازية يتيح العمل بكفاءة مع مجموعات البيانات الضخمة.

مرونة التكوين - إمكانية ضبط معايير استخراج الميزات لتناسب المهمة المحددة.

مجموعة واسعة من الدوال - من المقاييس الإحصائية البسيطة إلى مؤشرات اللاخطية والفوضى المعقدة.

التوافق مع بيئة Python - تكامل كامل مع pandas و scikit-learn و NumPy والمكتبات الشائعة الأخرى.

التثبيت وإعداد البيئة

للعمل مع TSFresh، يلزم تثبيت عدة مكونات. يتم التثبيت الأساسي عبر pip:

pip install tsfresh

للحصول على أداء كامل، يُوصى أيضاً بتثبيت التبعيات الإضافية:

pip install scikit-learn pandas numpy matplotlib seaborn

عند العمل مع البيانات الضخمة، قد تحتاج إلى تثبيت حزم إضافية لتحسين الأداء:

pip install dask[complete] numba

الاستيراد الأساسي للوحدات المطلوبة:

from tsfresh import extract_features, select_features
from tsfresh.utilities.dataframe_functions import impute
from tsfresh.feature_extraction import ComprehensiveFCParameters, EfficientFCParameters
from tsfresh.feature_selection.relevance import calculate_relevance_table
import pandas as pd
import numpy as np

هيكل البيانات ومتطلبات التنسيق

تعمل TSFresh مع البيانات بتنسيق خاص يُسمى "الجدول الطويل" (long format). يتطلب هذا التنسيق هيكلاً معيناً لـ DataFrame:

import pandas as pd

# مثال على هيكل بيانات صحيح
df = pd.DataFrame({
    'id': [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3],
    'time': [1, 2, 3, 4, 1, 2, 3,                    

توصيات