محتويات الدورة

pandas / المتقدم: الملكية والنوافذ والقبول التحليلي / الدرس 14

النوافذ وrolling وexpanding والترتيب

تعريف تسلسل الملاحظات وحد المعلومات قبل حساب إحصاءات الإزاحة أو النوافذ.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تمييز نوافذ عدد الصفوف والفترات الزمنية والحساب المتوسع.
  • شرح min_periods وحدود المجموعات وتسرب معلومات المستقبل.

تحتاج النافذة عقد ترتيب

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

تغير البداية والمفقود العينة الفعلية

تحدد min_periods عدد الملاحظات الصالحة اللازم قبل إنتاج نتيجة وفق قواعد العملية. لا يطابق ذلك طول النافذة دائماً، خصوصاً مع الإزاحات الزمنية والمفقود. قد تكون أول نتيجة متحركة مفقودة عمداً. تجمع expanding التاريخ المتاح، وتضيف الأوزان الأسية عقد وزن آخر. يحتاج الانحراف المعياري وإحصاءات مشابهة درجات حرية صريحة للمقارنة بين المكتبات. لا تعوض بداية مفقودة بصفر إلا بمعنى تجاري. أبلغ عن العينة الفعلية أو الاكتمال إذا قد يعتبر المستخدم نوافذ مختلفة أدلة متكافئة.

اشتقاق متوسط متحرك لملاحظتين

تحوي Series القيم 2 و4 و6 و8، وتطلب قيمتين صالحتين لكل نافذة صفين. تفقد النتيجة الأولى ثم تأتي 3 و5 و7. تتجنب التأكيدات مساواة المفقود بنفسه وتستخدم isna. هذه نتيجة متوقعة مشتقة، لا اختبار pandas منفذ. لا تشمل البيانات مفقوداً أو حد مجموعة، فلا تثبت سلوكهما. أدرج صنفاً ثانياً وتحقق من عدم أخذ ملاحظته الأولى تاريخ الصنف السابق. قارن أعضاء النافذة قبل تشخيص فرق عددي كمشكلة دقة.

python عينة متحركة وبداية توضيحيتان
import pandas as pd

values = pd.Series([2, 4, 6, 8])
means = values.rolling(window=2, min_periods=2).mean()
assert pd.isna(means.iloc[0])
assert means.iloc[1:].tolist() == [3.0, 5.0, 7.0]
print(means.iloc[1:].tolist())
الناتج المتوقع
[3.0, 5.0, 7.0]

المتوقع 3 و5 و7 للنوافذ المكتملة، والأولى مفقودة؛ ولم تنفذ pandas.

قد تبطل بيانات المستقبل أو التمركز الميزة

قد تضم نافذة متمركزة ملاحظات بعد الموضع الذي تحمل النتيجة تسميته. قد يناسب ذلك تنعيماً استعاديّاً، لكنه غير آمن لميزة يفترض أن تكون متاحة قبل وقوع حدث مستقبلي. عند تمرير عدد الفترات، تنقل shift القيم بالنسبة إلى مواضعها، أما عند استخدام تردد فتغير تسميات الوقت وفق عقدها الخاص. حدد الإزاحة المقصودة، وما إذا كانت أي ملاحظات مستقبلية لم تكن متاحة وقت القرار تدخل الحساب. قد يخفي التحقق على مجموعة بيانات مكتملة هذا التسرب. استخدم حداً صريحاً للمعلومات كما كانت متاحة وقت القرار وعينات تاريخية، ولا تفترض أن خطاً مرسوماً يبدو معقولاً كان قابلاً للحساب عند اتخاذ القرار.

فحص النوافذ المعلنة بشرائح عادية

يسرد النموذج القياسي النوافذ الثلاث المكتملة لقيمتين ويحسب متوسطاتها. يفحص العضوية والحساب دون محاكاة min_periods أو الأنواع القابلة للفقد أو الإزاحات أو محركات pandas. أبق التوقع المستقل صغيراً للفحص اليدوي. لا يثبت الدرس SciPy أو Numba ولا يقيس pandas. يظل البرنامج الحقيقي غير قابل للتنفيذ لغيابها. تحتاج محاذاة نوافذ المجموعات والأداء ودلالات الوقت أدلة محرك مستقلة للإصدار المختار؛ فلا تعتمد الشرائح المحلية إلا التسلسل والصيغة المعطيين.

python فحص محلي لعضوية النافذة ومتوسطها
values = [2, 4, 6, 8]
windows = [values[index - 1:index + 1] for index in range(1, len(values))]
means = [sum(window) / len(window) for window in windows]
assert windows == [[2, 4], [4, 6], [6, 8]]
assert means == [3.0, 5.0, 7.0]
print(means)
الناتج المتوقع
[3.0, 5.0, 7.0]

تتحقق الشرائح من النوافذ المكتملة المعطاة لا مفقود pandas أو سلوك إزاحة الوقت.

الأخطاء الشائعة وإصلاحها

تغير المتوسط المتحرك بعد خلط الصفوف.

لماذا يحدث؟
عدم إثبات التسلسل الزمني المطلوب.
كيف تصلحه؟
رتب بالكيان والزمن ومفتاح تعادل مبرر قبل العملية.
كيف تتجنب تكراره؟
اختبر خلط المصدر مقابل عضوية النوافذ المعلنة.

استخدام أول ملاحظة للصنف B تاريخ الصنف A.

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

استخدام ميزة تنبؤية ملاحظات بعد القرار.

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

اختبر فهمك

1. هل تعني نافذة متحركة تضم ثلاثة صفوف مدة ثلاثة أيام بالضرورة؟

اعرض الحل المشروح

لا؛ قد تقع الصفوف في دقائق أو أسابيع مع أوقات غير منتظمة. اختر العدد أو الفترة حسب السؤال، وحدد الحدود والحد الأدنى للمرصود. وضح تسلسل الكيان وتردد المصدر، ولا تعتبر عدداً مدة تقويمية.

2. لماذا قد يصلح التنعيم بنافذة متمركزة لتقرير يستعرض الماضي، ولا يصلح لميزة تستخدم في التنبؤ؟

اعرض الحل المشروح

يمكن للتحليل الاستعادي استخدام ملاحظات لاحقة عمداً، بينما يجب أن يحترم التنبؤ المعلومات التي كانت متاحة عند اتخاذ القرار. تجيب الصيغة نفسها عن سؤالين مختلفين من حيث إتاحة المعلومات. وثق حد المعلومات كما كانت وقت القرار، واختبر صراحة سجلات مستقبلية لم تكن متاحة حينها، بدلاً من الحكم على الصحة بالنعومة أو الملاءمة العددية وحدهما.

أهم ما تعلمته

  • عضوية النافذة عقد تسلسل وإتاحة معلومات.
  • تؤثر البداية المفقودة وحدود المجموعة والأوزان في التفسير.

المراجع الرسمية