تحليل البيانات
Exploratory Data Analysis
مشروع صغير متكامل: من قراءة البيانات وتنظيفها إلى التلخيص والرسم واستخلاص الملاحظات.
سير العمل
- تحميل البيانات وفحص أبعادها وأنواعها.
- فحص القيم المفقودة والمكررة.
- تلخيص كل متغير ورسم توزيعه.
- دراسة العلاقات بين المتغيرات.
- توثيق الملاحظات والقرارات.
مثال تطبيقي
نستخدم بيانات أزهار Iris المضمنة في scikit-learn:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
iris = load_iris(as_frame=True)
df = iris.frame # 150 صفاً و5 أعمدة
df["species"] = df["target"].map(dict(enumerate(iris.target_names)))
print(df.shape)
print(df.isna().sum())
print(df.duplicated().sum())
print(df.describe())التوزيعات
df.drop(columns="target").hist(figsize=(8, 6), bins=20)
plt.tight_layout()المقارنة بين الفئات
print(df.groupby("species")["petal length (cm)"].agg(["mean", "std"]))ستلاحظ أن طول البتلة يختلف بوضوح بين الأنواع، وهذا يوحي بأنه سمة مفيدة للتصنيف.
العلاقات
corr = df.drop(columns=["target", "species"]).corr()
print(corr.round(2))
fig, ax = plt.subplots()
for name, g in df.groupby("species"):
ax.scatter(g["petal length (cm)"], g["petal width (cm)"], label=name, s=12)
ax.set_xlabel("petal length (cm)")
ax.set_ylabel("petal width (cm)")
ax.legend()القيم الشاذة
قاعدة شائعة تعتبر القيمة شاذة إذا وقعت خارج المدى \(Q_1 – 1.5\,IQR\) إلى \(Q_3 + 1.5\,IQR\):
col = df["sepal width (cm)"]
q1, q3 = col.quantile([0.25, 0.75])
iqr = q3 - q1
outliers = df[(col < q1 - 1.5 * iqr) | (col > q3 + 1.5 * iqr)]لا تحذف القيم الشاذة آلياً؛ افحصها أولاً، فقد تكون حالات حقيقية مهمة.
تحذيرات منهجية
- الارتباط لا يعني السببية.
- إذا كنت ستبني نموذجاً، افصل بيانات الاختبار قبل اتخاذ قرارات التنظيف المعتمدة على الإحصاءات لتجنب تسرب البيانات.
- وثّق كل قرار تنظيف ليكون التحليل قابلاً للتكرار (reproducible).
مصطلحات الدرس
- القيمة الشاذة Outlier
- ملاحظة تختلف كثيراً عن بقية القيم، وقد تكون خطأ قياس أو حالة حقيقية نادرة.
- تحليل البيانات الاستكشافي Exploratory Data Analysis
- فحص البيانات بالتلخيصات والرسوم لفهم بنيتها واكتشاف المشكلات والأنماط قبل النمذجة.
- معامل الارتباط Correlation Coefficient
- مقياس بين -1 و1 لقوة العلاقة الخطية واتجاهها بين متغيرين.
الملخص
تحليل البيانات الاستكشافي (EDA) خطوة تسبق بناء النماذج، هدفها فهم البيانات: أبعادها وأنواعها وقيمها المفقودة وتوزيعاتها والعلاقات بين متغيراتها والقيم الشاذة. يجمع هذا الدرس NumPy وpandas وMatplotlib في سير عمل منظم، مع التنبيه إلى أن الارتباط لا يعني السببية.
أسئلة مراجعة
-
اذكر أربع خطوات في تحليل البيانات الاستكشافي.
فحص الأبعاد والأنواع، وحساب القيم المفقودة، وتلخيص التوزيعات، ودراسة العلاقات والقيم الشاذة.
-
هل يعني ارتباط قوي بين متغيرين أن أحدهما يسبب الآخر؟
لا؛ الارتباط لا يثبت السببية، وقد يوجد متغير ثالث مؤثر.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة