الوحدة 7 — الخوارزميات المتاحة وقيودها
بعد Pipeline، السؤال البديهيّ: ماذا نضع في نهايته؟ ثمّة إغراء بالإجابة «كلّ ما لدى scikit-learn». الحقيقة أقلّ رحابةً: MLlib تعرض عائلات محدَّدة، ولكلّ عائلة قيودها الموزَّعة. هذه الوحدة تُقدِّم الخريطة، وتُحدِّد الغائب، وتقترح بدائل واقعيّة.
الانحدار الخطّي واللوجستيّ
LinearRegression و LogisticRegression قواعد كلّ عمل مع MLlib. تعرض تنظيمًا L1 و L2 مختلطًا بمعلمة elasticNetParam بين 0 و 1. يعمل الأخير بمُستمثِل L-BFGS الموزَّع افتراضيًّا، ويمكن استبداله بـ IRLS أو SGD حسب البيانات.
قيد ملحوظ: الانحدار اللوجستيّ متعدّد الأصناف يعمل، لكنّه أقلّ نضجًا من نظيره في scikit-learn. لبضعة آلاف من الأصناف يفشل. البديل الطبيعي: النزول إلى شجرة قرار كبيرة أو غابة عشوائيّة.
أشجار القرار والغابات والتعزيز
DecisionTreeClassifier، RandomForestClassifier، GBTClassifier (Gradient Boosting)، مع نظائرها للانحدار. يعمل التدريب موزَّعًا: يُقسَّم البحث عن انقسام في كلّ عقدة على المنفّذين. أعمدة features مُمثَّلة كمتّجهات كثيفة أو متفرّقة، ولا فرق كبير في السرعة.
قيود مهمّة:
- العمق الأقصى محدَّد:
maxDepthيقف عند 30 (قيد بنية العدد الصحيح لتوصيف عقد الشجرة). فوق ذلك تتفكّك المرجعيّة الداخليّة. - GBT لا يدعم متعدّد الأصناف: مُنفَّذ للتصنيف الثنائي والانحدار فقط. لثلاثة أصناف فأكثر، اِستعمل
RandomForest. - الشجرة الواحدة لا تُطبَع كما في scikit-learn: لا تصوير مباشر ولا
plot_tree. تحصل على أهمّيات المتغيّرات (featureImportances) فقط.
عناقيد k-means و Bisecting k-means
KMeans مُنفَّذ بشكل موزَّع بمرحلة تجميع اعتيادية. BisectingKMeans يعمل هرميًّا. لِلبيانات الضخمة، KMeans|| (الإصدار الموزَّع لـk-means++) يُهيِّئ المراكز بشكل أفضل من random.
القيد: لا DBSCAN، لا HDBSCAN، لا GaussianMixture (بالمعنى الكامل). التجميع في MLlib يعني عمليًّا k-means وسلالته.
ALS للتوصية
ALS (Alternating Least Squares) هو خوارزميّة MLlib الفريدة التي لا تجد نظيرًا مباشرًا في scikit-learn. عوامل خفيّة لِلمستخدم والمُنتَج على مصفوفة تقييمات نادرة، مُدَّرَبة بالتناوب بين تحديث عوامل المستخدمين وعوامل المُنتَجات. يعمل على مليارات التقييمات. لِبناء نظام توصية موزَّع، هذا هو الحلّ الطبيعيّ في Spark، وستكرِّس الدورة 35 مقاربات أوسع للتوصية.