العودة إلى المدونة
Machine Learning 25 أكتوبر 2024 8 min للقراءة

الخوارزميات الجينية لمشاكل التحسين في العالم الحقيقي

استخدام الخوارزميات الجينية لاختيار الميزات وضبط المعلمات الفائقة والجدولة.

متى تستخدم الخوارزميات الجينية

  • المشكلات التوافقية (اختيار الميزات، الجدولة)
  • دوال الهدف غير القابلة للاشتقاق
  • فضاءات البحث متعددة القمم
  • عندما يكون التحسين البايزي مكلفاً جداً

اختيار الميزات بالخوارزمية الجينية

from deap import base, creator, tools, algorithms

# Genome: binary vector (1=feature included, 0=excluded)
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)

def evaluate(individual):
    selected_features = [i for i, v in enumerate(individual) if v == 1]
    if not selected_features: return (0.0,)
    X_sel = X_train[:, selected_features]
    score = cross_val_score(model, X_sel, y_train, cv=3).mean()
    # Penalize using too many features
    penalty = len(selected_features) / len(individual) * 0.05
    return (score - penalty,)

المعاملات الرئيسية

  • عدد السكان: 50-200 فرد
  • معدل الطفرة: 0.01-0.05 لكل جين
  • معدل التهجين: 0.7-0.9
  • الأجيال: 100-500 (إيقاف مبكر عند الثبات)
Genetic AlgorithmOptimizationFeature SelectionEvolutionary Computing
O

Ossama Elhakki

مهندس ذكاء اصطناعي وأنظمة ML — المغرب