ما علم البيانات؟ دورة حياة التحليل
من أثر النقرات إلى القرار: ما علم البيانات، وكيف نسير فيه خطوة خطوة؟ ⏱ نحو 30 دقيقة.
- تعرّف علم البيانات بوصفه تحويل البيانات إلى قرار.
- تتبع دورة حياة التحليل الخمسية.
- تميّز أدوات بايثون لكل خطوة.
- تقرأ إطار بيانات بسيطًا وتحسب إحصاءً أوّليًّا.
١البيانات في كل نقرة
كل زيارة لموقعك تترك أثرًا: متى دخل الزائر، وأي صفحة فتح، وكم بقي، وهل اشترى. هذه بيانات. علم البيانات هو تحويل هذا الركام من الأرقام إلى قرار: أي صفحة تطرد الزوّار؟ أي وقت تكثر فيه الزيارات؟ من الزائر الذي يُرجَّح أن يشتري؟
في هذا المقرر لن نكتفي بالنظر؛ سنحلّل بيانات ويب حقيقية بأدوات المحترفين — Python وPandas — ونصل إلى نماذج تتنبّأ بالسلوك.
٢دورة حياة التحليل: خمس خطوات
كل مشروع بيانات يمرّ بالمسار نفسه، وسنسير عليه درسًا درسًا:
| الخطوة | السؤال | الأداة في مقرّرنا |
|---|---|---|
| 1) الجمع/الاستخراج | من أين البيانات؟ | CSV، JSON، جداول HTML، سجلّات الخادم |
| 2) التنظيف | هل البيانات صالحة؟ | معالجة الناقص والمكرّر وتوحيد الأنواع |
| 3) التحليل | ماذا تقول البيانات؟ | الإحصاء الوصفي، التجميع groupby |
| 4) التصور | كيف نراها؟ | Matplotlib: خطوط وأعمدة ومدرّجات |
| 5) النمذجة والتنبؤ | ماذا سيحدث؟ | scikit-learn: انحدار وتصنيف |
الخطوات ليست خطًّا مستقيمًا: كثيرًا ما تعود من التحليل إلى التنظيف حين تكتشف خطأً في البيانات. هذا طبيعي.
٣أول نظرة إلى جدول بيانات
قلب علم البيانات في بايثون هو إطار البيانات DataFrame: جدول له صفوف وأعمدة، تمامًا كورقة إكسل، لكن نخاطبه بالكود. انظر — ثم اضغط ▶ شغّل هنا لتجرّبه بنفسك:
import pandas as pd # سجلّ زيارات مبسّط لموقع متجرvisits = pd.DataFrame({ "page": ["الرئيسية", "المنتجات", "السلة", "الدفع", "المنتجات"], "seconds": [12, 45, 30, 90, 52], "bought": [False, False, True, True, False],}) print(visits)print("عدد الزيارات:", len(visits))print("متوسط زمن البقاء:", visits["seconds"].mean(), "ثانية")
بثلاثة أسطر قرأنا الجدول، وعددنا صفوفه، وحسبنا متوسط زمن البقاء. هذا ما سنبنيه عليه طوال المقرر.
توقّع وتحقّق
علم البيانات هدفه الأساسي:
الأداة الأساسية للتعامل مع الجداول في بايثون:
أي خطوة تسبق التحليل مباشرة؟
البيانات الرديئة تؤدي إلى:
الخلاصة
- علم البيانات يحوّل أثر الزيارات إلى قرارات: أين الخلل؟ من سيشتري؟
- دورة الحياة: جمع ← تنظيف ← تحليل ← تصور ← نمذجة، وقد نعود خطوات للخلف.
Pandasللجداول،NumPyللحساب،Matplotlibللرسم،scikit-learnللتعلّم الآلي.- إطار البيانات
DataFrameجدولٌ نخاطبه بالكود؛ وهو محور المقرر.
تحدٍّ برمجي: أول تحليل
تمهيديلديك إطار بيانات صغير لزيارات صفحات. أكمل الكود ليطبع عدد الزيارات التي انتهت بشراء، ومتوسط زمن البقاء مقرّبًا إلى منزلة واحدة.
- اطبع عدد الزيارات التي
bought == True. - اطبع متوسط
secondsمقرّبًا إلى منزلة عشرية واحدة.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
import pandas as pdvisits = pd.DataFrame({ "page": ["A", "B", "C", "D", "E"], "seconds": [12, 45, 30, 90, 52], "bought": [False, False, True, True, False],})# اطبع عدد الزيارات الشرائية ثم متوسط الثواني مقرّبًا لمنزلة واحدة
💡 تلميح 1
visits["bought"].sum() (True = 1).💡 تلميح 2
round(visits["seconds"].mean(), 1).حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
import pandas as pdvisits = pd.DataFrame({ "page": ["A", "B", "C", "D", "E"], "seconds": [12, 45, 30, 90, 52], "bought": [False, False, True, True, False],})print(int(visits["bought"].sum()))print(round(visits["seconds"].mean(), 1))