Metode Terinformasikan: Algoritme Genetika

Penyetelan Hyperparameter di Python

Alex Scriven

Data Scientist

Pelajaran singkat genetika

 

Dalam evolusi genetika di dunia nyata, prosesnya sebagai berikut:

  1. Banyak makhluk hidup ada ("keturunan/offspring")
  2. Yang terkuat bertahan dan berpasangan
  3. Terjadi "crossover" saat membentuk keturunan
  4. Ada mutasi acak pada sebagian keturunan
    • Mutasi ini kadang memberi sebagian keturunan keunggulan
  5. Kembali ke (1)!
Penyetelan Hyperparameter di Python

Genetika dalam Machine Learning

 

Kita dapat menerapkan ide yang sama untuk penalaan hiperparameter:

  1. Buat beberapa model (dengan setelan hiperparameter)
  2. Pilih yang terbaik (berdasarkan fungsi skor)
    • Inilah yang "bertahan"
  3. Buat model baru yang mirip dengan yang terbaik
  4. Tambahkan keacakan agar tidak terjebak di optimum lokal
  5. Ulangi sampai puas
Penyetelan Hyperparameter di Python

Mengapa ini efektif?

 

Ini adalah pencarian terinformasikan dengan beberapa keunggulan:

  • Kita belajar dari iterasi sebelumnya, seperti penalaan hiperparameter bayesian.
  • Memiliki kelebihan tambahan berupa sedikit keacakan
  • (Paket yang akan kita gunakan) menangani banyak hal yang melelahkan dalam machine learning
Penyetelan Hyperparameter di Python

Mengenal TPOT

 

Library yang berguna untuk penalaan hiperparameter genetika adalah TPOT:

Anggap TPOT sebagai Asisten Data Science Anda. TPOT adalah alat AutoML Python yang mengoptimalkan pipeline machine learning menggunakan pemrograman genetika.

Pipeline tidak hanya mencakup model (atau beberapa model), tetapi juga fitur dan aspek proses lainnya. Selain itu, TPOT mengembalikan kode Python dari pipeline untuk Anda!

Penyetelan Hyperparameter di Python

Komponen TPOT

Argumen utama untuk classifier TPOT adalah:

  • generations: Jumlah iterasi pelatihan.
  • population_size: Jumlah model yang disimpan tiap iterasi.
  • offspring_size: Jumlah model yang dibuat tiap iterasi.
  • mutation_rate: Proporsi pipeline yang diberi keacakan.
  • crossover_rate: Proporsi pipeline yang dikawinkan tiap iterasi.
  • scoring: Fungsi untuk menentukan model terbaik.
  • cv: Strategi cross-validation yang digunakan.
Penyetelan Hyperparameter di Python

Contoh sederhana

Contoh sederhana:

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))

Kita akan mempertahankan nilai default untuk mutation_rate dan crossover_rate karena sebaiknya dibiarkan default tanpa pengetahuan mendalam tentang pemrograman genetika.

Perhatikan: Tidak ada hiperparameter khusus algoritme?

Penyetelan Hyperparameter di Python

Ayo berlatih!

Penyetelan Hyperparameter di Python

Preparing Video For Download...