تلخيص النتائج في تقرير
لخّص الرؤى الأساسية في ملخص منظم بصيغة markdown، مع مراجع مضمّنة للتصورات وخطوات تالية قابلة للتنفيذ.
تلخيص النتائج في تقرير درس مجاني في Pandas & NumPy Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Pandas & NumPy Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Pandas & NumPy Academy 4 دروس في المجموع.
أهمية تقرير EDA منظم
يصعب مشاركة دفاتر Jupyter الخام التي تحتوي على مئات المخططات وخلايا التعليمات البرمجية مع أصحاب المصلحة الذين يحتاجون إلى اتخاذ إجراءات بناءً على النتائج. يعمل تقرير ملخص EDA منظم على استخلاص أهم الرؤى من جميع تحليلاتك أحادية وثنائية المتغيرات في سرد واضح. تفصل التقارير الجيدة بين النتائج (ما تُظهره البيانات) والآثار المترتبة (ما ينبغي فعله بناءً عليها)، ولا تتضمن المرئيات الداعمة إلا للادعاءات الأساسية.
الأقسام الستة لتقرير EDA
يتضمن تقرير EDA الاحترافي عادةً ستة أقسام: 1) نظرة عامة على مجموعة البيانات (الحجم، المصدر، الفترة الزمنية)، و2) مشكلات جودة البيانات (القيم المفقودة، والقيم الشاذة، والتكرارات وكيفية معالجتها)، و3) توزيعات المتغيرات الأساسية (أهم الأعمدة الرقمية والفئوية)، و4) الارتباطات والعلاقات (العلاقات ذات أكبر مقادير ارتباط التي تم العثور عليها)، و5) رؤى المجموعات الفرعية (الفروق بين المجموعات المهمة لسؤال العمل)، و6) الخطوات التالية المقترحة (إجراءات التنظيف واقتراحات النمذجة).
كتابة قسم النظرة العامة على مجموعة البيانات
ينبغي إنشاء قسم النظرة العامة برمجيًا لضمان دقته دائمًا. سجّل الحجم، وأسماء الأعمدة وأنواع بياناتها، والنطاق الزمني (إن أمكن)، ومصدر مجموعة البيانات أو إصدارها. وتؤدي كتابة هذا القسم في التعليمات البرمجية بدلًا من النثر إلى تجنب الخطأ الشائع المتمثل في وصف مجموعة بيانات تضم 10,000 صف في تقرير أُنشئ فعليًا من إصدار منظف يضم 9,800 صف.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
print('=== DATASET OVERVIEW ===')
print(f'Shape: {df.shape[0]:,} rows x {df.shape[1]} columns')
print(f'Columns: {", ".join(df.columns)}')
print(f'Numeric: {df.select_dtypes("number").shape[1]} columns')
print(f'Categorical: {df.select_dtypes("object").shape[1]} columns')
print(f'Boolean: {df.select_dtypes("bool").shape[1]} columns')
print(f'Total missing cells: {df.isna().sum().sum():,}')
print(f'Duplicate rows: {df.duplicated().sum()}')كتابة قسم جودة البيانات
يسرد قسم جودة البيانات كل مشكلة تم العثور عليها والقرار المتخذ بشأنها. استخدم تنسيق جدول يتضمن الأعمدة التالية: العمود، المشكلة، الخطورة (عالية/متوسطة/منخفضة)، الإجراء المتخذ. احسب هذا الجدول برمجيًا من نتائج التنميط كي يتحدث تلقائيًا عند تغير البيانات. وينبغي أن تعكس درجة الخطورة الأثر على العمل — فغياب المتغير الهدف يمثل خطورة عالية، بينما قد يكون غياب عمود غير تنبؤي منخفض الخطورة.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Auto-generate data quality table
missing_pct = (df.isna().sum() / len(df) * 100).round(1)
quality = missing_pct[missing_pct > 0].to_frame(name='missing_pct')
quality['severity'] = quality['missing_pct'].apply(
lambda x: 'High' if x > 30 else ('Medium' if x > 10 else 'Low')
)
quality['action'] = quality['missing_pct'].apply(
lambda x: 'Drop column' if x > 50 else 'Impute or flag'
)
print(quality.to_string())إنشاء أشكال ملخصة متعددة اللوحات
يجمع الشكل الملخص عدة مخططات في صورة واحدة يمكن تضمينها في تقرير. استخدم plt.subplots(rows, cols) لإنشاء شبكة، وخصص لكل نتيجة أساسية لوحة خاصة بها. احفظ الشكل باستخدام savefig() وبكثافة DPI مناسبة لتنسيق الإخراج (150 للشاشة، و300 للطباعة). ضع عنوانًا لكل لوحة يعبّر بوضوح عن النتيجة، مثل 'Fare is right-skewed (skew=4.1)'، بدلًا من اسم العمود فقط.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = sns.load_dataset('titanic')
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# 1. Fare distribution
sns.histplot(df['fare'], kde=True, bins=30, ax=axes[0][0])
axes[0][0].set_title('Fare is right-skewed (skew=4.1)')
# 2. Survival by class
survival = df.groupby('class')['survived'].mean().reset_index()
sns.barplot(data=survival, x='class',
y='survived', order=['First', 'Second', 'Third'], ax=axes[0][1])
axes[0][1].set_title('Survival Rate Drops by Class')
# 3. Age distribution
sns.histplot(df['age'].dropna(), kde=True, bins=25, ax=axes[1][0], color='coral')
axes[1][0].set_title('Age: Near-Normal, Missing 20%')
# 4. Embarkation counts
sns.countplot(data=df, x='embarked', ax=axes[1][1], palette='Set2')
axes[1][1].set_title('Most Boarded at Southampton')
plt.tight_layout()
plt.savefig('/tmp/eda_summary.png', dpi=150, bbox_inches='tight')
plt.show()
print('Saved: /tmp/eda_summary.png')صياغة النتائج في نص سردي
ينبغي صياغة كل نتيجة أساسية في صورة جملة ذات صلة بالعمل، لا في صورة وصف تقني. فبدلًا من كتابة 'The fare column has skewness=4.1'، اكتب 'Ticket prices are extremely right-skewed — a small number of first-class passengers paid over 10× the median fare, which may distort revenue analyses that use mean pricing.' إن تحويل الملاحظة الإحصائية إلى أثر على العمل هو ما يجعل تقارير EDA قيّمة لأصحاب المصلحة غير التقنيين.
إنشاء تقارير Markdown برمجيًا
يمكنك كتابة تقارير EDA على هيئة ملفات markdown مباشرةً من Python. أنشئ سلسلة نصية تحتوي على عناوين markdown، ونقاط تعداد، وروابط صور مضمنة، ثم اكتبها في ملف .md. ينشئ هذا الأسلوب تقارير قابلة لإعادة الإنتاج وتتحدث تلقائيًا عند تغير البيانات الأساسية، مما يجعلها مناسبة لدمجها في مخرجات خطوط أنابيب البيانات أو مستودعات Git.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Build a simple markdown report
lines = [
'# EDA Summary Report: Titanic Dataset',
'',
'## Overview',
f'- **Rows:** {len(df):,}',
f'- **Columns:** {df.shape[1]}',
f'- **Total Missing Cells:** {df.isna().sum().sum():,}',
'',
'## Key Findings',
'- First-class passengers had a 63% survival rate vs 24% for third class.',
'- Fare is extremely right-skewed (skew=4.1); use log transform before modelling.',
'- Age is missing in 20% of rows — median imputation recommended.',
'',
'## Recommended Next Steps',
'1. Impute age with median grouped by class.',
'2. Drop the cabin column (77% missing).',
'3. Log-transform fare before any regression modelling.',
]
with open('/tmp/eda_report.md', 'w') as f:
f.write('\n'.join(lines))
print('Report written to /tmp/eda_report.md')
print('\n'.join(lines[:10]))التصدير إلى HTML باستخدام Jupyter
يمكن تصدير دفاتر Jupyter إلى HTML أو PDF باستخدام jupyter nbconvert --to html notebook.ipynb. ويحافظ ذلك على جميع المخططات والتعليمات البرمجية وخلايا markdown في ملف واحد قابل للمشاركة، ولا يتطلب تثبيت Python لعرضه. ولإنشاء خط أنابيب مؤتمت بالكامل، شغّل الدفتر برمجيًا باستخدام papermill: papermill input.ipynb output.ipynb -p date '2024-01-01'، إذ يضبط المعلمات وينفذ الدفتر باعتباره نصًا برمجيًا.
# To export a Jupyter notebook to HTML:
# jupyter nbconvert --to html eda_notebook.ipynb
# To parameterise and run with papermill:
# pip install papermill
# papermill eda_template.ipynb eda_2024.ipynb -p date '2024-01-01' -p min_rows 1000
# The output notebook can then be exported:
# jupyter nbconvert --to html eda_2024.ipynb
print('Jupyter nbconvert and papermill automate report generation.')تنظيم الخطوات التالية القابلة للتنفيذ
غالبًا ما يكون قسم الخطوات التالية المقترحة الجزء الأكثر قراءة في تقرير EDA. نظّمه في صورة قائمة تحقق مرتبة حسب الأولوية: P1 (حاجز) — مشكلات يجب إصلاحها قبل أن يصبح أي تحليل صالحًا (مثل تحديد أنواع البيانات بشكل خاطئ)، وP2 (مهم) — إجراءات تنظيف تؤثر تأثيرًا كبيرًا في أداء النموذج (مثل معالجة القيم الشاذة)، وP3 (مستحسن) — أفكار إثراء ومصادر بيانات إضافية لاستكشافها. ويسهّل هذا الإطار على الفريق تخصيص الجهد بالقدر المناسب.
استخدام pandas-profiling لإعداد التقارير بسرعة
تنشئ أداة ydata-profiling (pip install ydata-profiling) تقرير HTML شاملًا باستدعاء واحد. ويتضمن التقرير إحصاءات النظرة العامة، وتوزيعات المتغيرات، والارتباطات، وأنماط القيم المفقودة، واكتشاف التكرارات — أي جميع أقسام تقرير EDA اليدوي. استخدمها للاستكشاف السريع في بداية المشروع، ثم اكتب تقريرًا ملخصًا مخصصًا لإبراز النتائج الأكثر صلة بسؤال العمل المحدد.
# pip install ydata-profiling
# from ydata_profiling import ProfileReport
# import seaborn as sns
# df = sns.load_dataset('titanic')
# profile = ProfileReport(df, title='Titanic EDA')
# profile.to_file('titanic_eda.html') # interactive HTML
# profile.to_notebook_iframe() # inline in Jupyter
# Key sections in the generated report:
# - Overview: shape, missing, duplicates
# - Variables: per-column statistics and plots
# - Correlations: Pearson, Spearman, Cramers V
# - Missing values: heatmap and dendrogram
# - Duplicates: full list of duplicate rows
print('ydata-profiling generates full EDA reports with one function call.')أنماط تقرير EDA غير السليمة التي ينبغي تجنبها
من أنماط تقارير EDA غير السليمة الشائعة: عرض كل مخطط لكل عمود (مما ينشئ تقارير من 50 صفحة لا يقرأها أحد — اختر أهم 5 إلى 10 مخططات)، وذكر الحقائق دون تفسير ('يحتوي العمر على 177 قيمة فارغة' — فما الإجراء الذي ينبغي اتخاذه؟)، وعدم تحديث التقرير بعد التنظيف (نظّف البيانات، ثم أعد التنميط للتأكد من حل المشكلات)، وخلط تعليمات التنظيف البرمجية بالتحليل (أبقِ تنظيف البيانات منفصلًا عن سرد EDA).
اختبار سريع
اختبر مدى فهمك لكتابة تقرير EDA الواردة في هذا الدرس.
مراجعة الدرس
تعلّمت في هذا الدرس تنظيم تقارير EDA في ستة أقسام (النظرة العامة، والجودة، والتوزيعات، والارتباطات، ورؤى المجموعات الفرعية، والخطوات التالية)، وإنشاء أشكال ملخصة متعددة اللوحات وتقارير markdown برمجيًا، وتحويل النتائج الإحصائية إلى لغة ذات صلة بالعمل. بعد ذلك سنستكشف تقنيات الفهرسة المتقدمة — إنشاء MultiIndex والاختيار الهرمي في Pandas.
الأسئلة الشائعة
هل درس «تلخيص النتائج في تقرير» مجاني؟
نعم — نص درس «تلخيص النتائج في تقرير» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Pandas & NumPy Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Pandas & NumPy Academy 4 دروس في المجموع.
ماذا ستتعلم في «تلخيص النتائج في تقرير»؟
لخّص الرؤى الأساسية في ملخص منظم بصيغة markdown، مع مراجع مضمّنة للتصورات وخطوات تالية قابلة للتنفيذ. تتمرن على Pandas & NumPy Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Pandas & NumPy Academy؟
لا تُشترط خبرة سابقة. Pandas & NumPy Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تلخيص النتائج في تقرير»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Pandas & NumPy Academy هذا؟
نعم. كل درس في Pandas & NumPy Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قائمة فحص توصيف مجموعة البيانات
- التحليل أحادي المتغير
- التحليل ثنائي المتغير وتحليل الارتباط
- تلخيص النتائج في تقرير