Bilgili Yöntemler: Genetik Algoritmalar

Python'da Hiperparametre Ayarlama

Alex Scriven

Data Scientist

Genetik üzerine kısa bir ders

 

Gerçek dünyadaki genetik evrimde süreç şöyledir:

  1. Birçok canlı vardır ("offspring")
  2. En güçlüler hayatta kalır ve eşleşir
  3. Yeni yavrular oluşurken bir miktar "crossover" olur
  4. Bazı yavrularda rastgele mutasyonlar görülür
    • Bu mutasyonlar bazen avantaj sağlayabilir
  5. (1)'e geri dönün!
Python'da Hiperparametre Ayarlama

Makine Öğreniminde Genetik

 

Aynı fikri hiperparametre ayarlamada uygulayabiliriz:

  1. Bazı modeller oluştururuz (hiperparametre ayarlarıyla)
  2. En iyilerini seçeriz (skor fonksiyonumuza göre)
    • Bunlar "hayatta kalanlar"dır
  3. En iyilere benzer yeni modeller üretiriz
  4. Yerel optimuma takılmamak için biraz rastgelelik ekleriz
  5. Memnun olana kadar tekrarlarız!
Python'da Hiperparametre Ayarlama

Neden iyi çalışır?

 

Bu, şu avantajları olan bilgili bir aramadır:

  • Önceki yinelemelerden öğrenmemizi sağlar; bayesçi hiperparametre ayarı gibi.
  • Ek olarak bir miktar rastgelelik içerir
  • (Kullanacağımız paket) ML’nin birçok zahmetli yönünü üstlenir
Python'da Hiperparametre Ayarlama

TPOT’a giriş

 

Genetik hiperparametre ayarı için yararlı bir kütüphane: TPOT

TPOT’u Veri Bilimi Asistanınız olarak düşünün. TPOT, genetik programlama ile makine öğrenimi pipeline’larını optimize eden bir Python Otomatik ML aracıdır.

Pipeline’lar yalnızca modeli (veya birden çok modeli) değil, özellikleri ve sürecin diğer yönlerini de kapsar. Üstelik pipeline’ın Python kodunu da döndürür!

Python'da Hiperparametre Ayarlama

TPOT bileşenleri

Bir TPOT sınıflandırıcısının temel argümanları:

  • generations: Eğitimin kaç yineleme süreceği.
  • population_size: Her yinelemeden sonra tutulacak model sayısı.
  • offspring_size: Her yinelemede üretilecek model sayısı.
  • mutation_rate: Rastgelelik uygulanacak pipeline oranı.
  • crossover_rate: Her yinelemede eşleştirilecek pipeline oranı.
  • scoring: En iyi modelleri belirleyen fonksiyon.
  • cv: Kullanılacak çapraz doğrulama stratejisi.
Python'da Hiperparametre Ayarlama

Basit bir örnek

Basit bir örnek:

from tpot import TPOTClassifier
tpot = TPOTClassifier(generations=3, population_size=5, 
                      verbosity=2, offspring_size=10,
                      scoring='accuracy', cv=5)

tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))

mutation_rate ve crossover_rate için varsayılanları koruyacağız; genetik programlama hakkında derin bilgi olmadan en iyisi budur.

Dikkat: Algoritmaya özgü hiperparametre yok mu?

Python'da Hiperparametre Ayarlama

Ayo berlatih!

Python'da Hiperparametre Ayarlama

Preparing Video For Download...