انتقل إلى المحتوى الرئيسي

الوحدة 6 — تحليل المكوّنات الأساسية

تغييرٌ في العائلة: نترك التجميع إلى تقليص الأبعاد. فلم يبقَ السؤال «أيّ مجموعات؟» بل «هل أستطيع وصف هذه البيانات بمتغيّرات أقلّ بلا فقدان الجوهر؟». وتحليل المكوّنات الأساسية هو الجواب المرجعي، ومن أكثر أدوات علم البيانات استعمالاً على الإطلاق.

المسألة: متغيّرات كثيرة، ومتكرّرة

خمسون متغيّراً تصف عميلاً تطرح ثلاث صعوبات ملموسة: لا نقدر على تصوير أيّ شيء بعد ثلاثة أبعاد؛ وتفقد المسافات قدرتها على التمييز (لعنة الأبعاد التي تنخر k-means وDBSCAN)؛ وكثيرٌ من هذه المتغيّرات يقول الشيء نفسه — الطول والوزن، الدخل والإنفاق، المساحة وعدد الغرف.

وهذا التكرار هو المنفذ بالضبط. فإن كان متغيّران مترابطين بقوّة، كفى اتّجاهٌ واحدٌ محسَن الاختيار لتلخيصهما معاً تقريباً.

ما يفعله التحليل: إيجاد اتّجاهات التغيّر المُهيمنة

يبحث التحليل عن محاور جديدة، تُسمّى المكوّنات الأساسية، بحيث:

  1. يكون الأوّل هو الاتّجاه الذي تتغيّر فيه البيانات أكثر ما يكون؛
  2. ويكون الثاني اتّجاه أكبر تغيّرٍ متبقٍّ، عمودياً على الأوّل؛
  3. وهكذا دواليك.

وكلّ مكوّن تركيبٌ خطّي للمتغيّرات الأصلية — إنّه الجداء المصفوفي من دورة الرياضيات مُطبَّقاً على غرضٍ محدّد. ويكفل قيدُ التعامد أنّ كلّ محورٍ جديد يأتي بمعلومةٍ لم تُلتقَط سابقاً: فالمكوّنات مفكوكة الترابط بينها، وقد اختفى التكرار.

وبالإبقاء على المكوّنات الأولى فقط نصف البيانات بمحاور أقلّ بكثير مع حفظ معظم تغيّريّتها. وتقنياً، يُقطِّر التحليل مصفوفة التغاير: فالقيم الذاتية من دورة الرياضيات تقيس التباين الذي يحمله كلّ محور.

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

X_s = StandardScaler().fit_transform(X) # لا غنى عنه: انظر التنبيه
acp = PCA().fit(X_s)
acp.explained_variance_ratio_ # نسبة التباين لكلّ مكوّن
acp.explained_variance_ratio_.cumsum() # التباين التراكمي: المنحنى الواجب قراءته
قيّس أوّلاً، بلا استثناء

يُعظّم التحليل التباين، والتباين يتوقّف على الوحدات. فمتغيّرٌ باليورو (تباينٌ هائل) سيستحوذ على المكوّن الأوّل في مواجهة متغيّرٍ بالسنوات، لا بالأهمّية بل باختيار الوحدة. وبلا تقييس مسبق يكون التحليل غير قابل للتفسير — والخطأ صامت، إذ يكتمل الحساب رغم ذلك.

اختيار عدد المكوّنات

التباين المُفسَّر هو المعيار المركزي: فكلّ مكوّنٍ يحمل نسبةً منه، ويدلّ التراكم على ما نُبقي عليه. وثلاث طرائق للحسم، تُختار بحسب الغرض:

المعيارالقاعدةالاستعمال
حدّ التباينإبقاء ما يكفي لـ90 أو 95%الضغط، المعالجة المسبقة
كوع الانحدار الحجريمنحنى التباين المُفسَّر لكلّ مكوّن، ونقطع عند الهبوطالتحليل الاستكشافي
التصوير2 أو 3 مكوّنات، أيّاً كان التباينالعرض البياني

ويُقرأ مخطّط الانحدار الحجري كما يُقرأ كوع الوحدة 3 بالضبط: فبعد الهبوط لا تلتقط المكوّنات إلّا ضجيجاً. وتسمح scikit-learn بالتعبير عن الغرض مباشرةً: فـPCA(n_components=0.95) تُبقي تلقائياً على عدد المكوّنات اللازم لـ95% من التباين.

تفسير المحاور

لا اسمَ للمكوّن: بل عليك أن تمنحه إيّاه، بفحص أوزان كلّ متغيّر أصلي في تعريفه (acp.components_). فإن حمّل المكوّن الأوّل بقوّةٍ الدخلَ ومساحة السكن ومبلغ الإنفاق، سمّيناه «مستوى المعيشة». وهذا العمل التفسيري يُحوّل نتيجةً رياضية إلى معرفةٍ عملية؛ وهو ما يمنح التحليل قيمته التفسيرية، فيما يتجاوز الضغط.

حدودٌ تُعرَف

التحليل خطّي: فلا يلتقط إلّا اتّجاهات تغيّرٍ مستقيمة، وتفلت منه بنيةٌ ملتفّة (ومن هنا t-SNE وUMAP في الوحدة التالية). والمكوّنات تراكيب من كلّ المتغيّرات، فهي أقلّ قابلية للقراءة مباشرةً من المتغيّرات الأصلية. وأخيراً يُقدّم التحليل التباين، وهو ليس دائماً المعلومة النافعة: فمتغيّرٌ منخفض التباين قد يكون حاسماً لمهمّةٍ معيّنة.

الخلاصة

  • يستغلّ التحليل التكرار بين المتغيّرات لوصف البيانات بمحاور أقلّ.
  • المكوّنات الأساسية تراكيب خطّية ذات تباينٍ أقصى متعاقب ومتعامدة بينها، فهي مفكوكة الترابط.
  • نختار عددها بـحدّ التباين التراكمي أو كوع الانحدار الحجري أو قيد التصوير.
  • التقييس واجب؛ والتفسير يمرّ بأوزان المتغيّرات، والطريقة تبقى خطّية.

الوحدة التالية: t-SNE وUMAP، اللذان يُصوِّران بنى غير خطّية — مع احتياطات قراءةٍ صارمة.