Bagikan melalui


Visualisasi pelatihan (pratinjau)

Uji coba hyperparameter atau uji coba AutoML mencari parameter optimal untuk model pembelajaran mesin. Setiap uji coba terdiri dari beberapa eksekusi, di mana setiap eksekusi mengevaluasi kombinasi parameter tertentu. Pengguna dapat memantau eksekusi ini menggunakan item eksperimen ML di Fabric.

Modul ini flaml.visualization menawarkan fungsi untuk memplot dan membandingkan eksekusi di FLAML. Pengguna dapat menggunakan Plotly untuk berinteraksi dengan plot eksperimen AutoML mereka. Untuk menggunakan fungsi-fungsi ini, pengguna perlu memasukkan objek atau flaml.tune.tune.ExperimentAnalysis yang dioptimalkanflaml.AutoML.

Artikel ini mengajarkan cara menggunakan flaml.visualization modul untuk menganalisis dan menjelajahi hasil uji coba AutoML Anda. Anda juga dapat mengikuti langkah-langkah yang sama untuk uji coba hiperparameter Anda.

Penting

Fitur ini dalam pratinjau.

Membuat uji coba AutoML

AutoML menawarkan serangkaian proses otomatis yang dapat mengidentifikasi alur pembelajaran mesin terbaik untuk himpunan data Anda, membuat seluruh proses pemodelan lebih mudah dan seringkali lebih akurat. Intinya, ini menghemat masalah penyetelan tangan model dan hiperparameter yang berbeda.

Dalam sel kode di bawah ini, kami akan:

  1. Muat himpunan data Iris.
  2. Pisahkan data menjadi set pelatihan dan pengujian.
  3. Mulai uji coba AutoML agar sesuai dengan data pelatihan kami.
  4. Jelajahi hasil uji coba AutoML kami dengan visualisasi dari flaml.visualization.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML

# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)

# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
    "time_budget": 10, # Time limit in seconds
    "task": "classification", # Type of machine learning task
    "log_file_name": "aml_iris.log", # Name of the log file
    "metric": "accuracy", # Evaluation metric
    "log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)

Memvisualisasikan hasil eksperimen

Setelah menjalankan uji coba AutoML, Anda perlu memvisualisasikan hasil untuk menganalisis seberapa baik performa model dan perilakunya. Di bagian dokumentasi kami ini, kami menunjukkan kepada Anda cara menggunakan utilitas bawaan di pustaka FLAML untuk tujuan ini.

Mengimpor modul visualisasi

Untuk mengakses utilitas visualisasi ini, kami menjalankan perintah impor berikut:

import flaml.visualization as fviz

Riwayat pengoptimalan

Plot riwayat pengoptimalan biasanya memiliki jumlah uji coba/iterasi pada sumbu x dan metrik performa (seperti akurasi, RMSE, dll.) pada sumbu y. Ketika jumlah uji coba meningkat, Anda akan melihat plot garis atau sebar yang menunjukkan performa setiap percobaan.

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot riwayat pengoptimalan.

Kepentingan fitur

Plot kepentingan fitur adalah alat visualisasi canggih yang memungkinkan Anda memahami signifikansi fitur input yang berbeda dalam menentukan prediksi model.

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot kepentingan fitur.

Plot koordinat paralel

Plot koordinat paralel adalah alat visualisasi yang mewakili data multi-dimensi dengan menggambar beberapa garis vertikal (sumbu) yang sesuai dengan variabel atau hiperparameter, dengan titik data yang diplot sebagai garis yang terhubung di seluruh sumbu ini. Dalam konteks AutoML atau eksperimen penyetelan, ini berperan penting dalam memvisualisasikan dan menganalisis performa kombinasi hiperparameter yang berbeda. Dengan melacak jalur konfigurasi berkinerja tinggi, seseorang dapat membedakan pola atau tren dalam pilihan hyperparameter dan interaksinya. Plot ini membantu dalam memahami kombinasi mana yang menyebabkan performa optimal, menentukan area potensial untuk eksplorasi lebih lanjut, dan mengidentifikasi trade-off antara hiperparameter yang berbeda.

Utilitas ini mengambil argumen lain berikut:

  • learner: Tentukan pelajar yang ingin Anda pelajari dalam eksperimen. Parameter ini hanya berlaku untuk hasil eksperimen AutoML. Dengan membiarkan ini kosong, sistem memilih pelajar terbaik dalam seluruh eksperimen.

  • params: Daftar untuk menentukan hyperparameter mana yang akan ditampilkan. Dengan membiarkan ini kosong, sistem menampilkan semua hyperparameter yang tersedia.

fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot koordinat paralel.

Plot kontur

Plot kontur memvisualisasikan data tiga dimensi dalam dua dimensi, di mana sumbu x dan y mewakili dua hiperparameter, dan garis kontur atau kontur terisi menggambarkan tingkat metrik performa (misalnya, akurasi atau kehilangan). Dalam konteks AutoML atau eksperimen penyetelan, plot kontur bermanfaat untuk memahami hubungan antara dua hyperparameter dan efek gabungannya pada performa model.

Dengan memeriksa kepadatan dan posisi garis kontur, seseorang dapat mengidentifikasi wilayah ruang hiperparameter tempat performa dioptimalkan, memastikan potensi trade-off antara hiperparameter, dan mendapatkan wawasan tentang interaksi mereka. Visualisasi ini membantu menyempurnakan ruang pencarian dan proses penyetelan.

Utilitas ini juga mengambil argumen berikut:

  • learner: Tentukan pelajar yang ingin Anda pelajari dalam eksperimen. Parameter ini hanya berlaku untuk hasil eksperimen AutoML. Dengan membiarkan ini kosong, sistem memilih pelajar terbaik dalam seluruh eksperimen.

  • params: Daftar untuk menentukan hyperparameter mana yang akan ditampilkan. Dengan membiarkan ini kosong, sistem menampilkan semua hyperparameter yang tersedia.

fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot kontur.

Fungsi distribusi empiris

Plot fungsi distribusi empiris (EDF), sering divisualisasikan sebagai fungsi langkah, mewakili probabilitas kumulatif titik data kurang dari atau sama dengan nilai tertentu. Dalam Eksperimen AutoML atau penyetelan, plot EDF dapat digunakan untuk memvisualisasikan distribusi performa model di berbagai konfigurasi hyperparameter.

Dengan mengamati curam atau kerataan kurva di berbagai titik, seseorang dapat memahami konsentrasi performa model yang baik atau buruk. Visualisasi ini menawarkan wawasan tentang efektivitas keseluruhan proses penyetelan, menyoroti apakah sebagian besar konfigurasi yang dicoba menghasilkan hasil yang memuaskan atau jika hanya beberapa konfigurasi yang menonjol.

Catatan

Untuk eksperimen AutoML, beberapa model akan diterapkan selama pelatihan. Uji coba setiap pelajar diwakili sebagai seri pengoptimalan. Untuk eksperimen penyetelan hiperparameter, hanya akan ada satu pelajar yang dievaluasi. Namun, Anda dapat memberikan eksperimen penyetelan tambahan untuk melihat tren di setiap pelajar.

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot fungsi distribusi empiris.

Plot garis waktu

Plot garis waktu, sering direpresentasikan sebagai bagan Gantt atau urutan batang, memvisualisasikan awal, durasi, dan penyelesaian tugas dari waktu ke waktu. Dalam konteks AutoML atau eksperimen penyetelan, plot garis waktu dapat menampilkan perkembangan berbagai evaluasi model dan durasi masing-masing, yang diplot terhadap waktu. Dengan mengamati plot ini, pengguna dapat memahami efisiensi proses pencarian, mengidentifikasi potensi hambatan atau periode menganggur, dan memahami dinamika temporal dari berbagai evaluasi hiperparameter.

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot garis waktu.

Plot ipotong

Plot hubungan parameter sebagai plot ipotong dalam sebuah penelitian.

Utilitas ini juga mengambil argumen berikut:

  • learner: Tentukan pelajar yang ingin Anda pelajari dalam eksperimen. Parameter ini hanya berlaku untuk hasil eksperimen AutoML. Dengan membiarkan ini kosong, sistem memilih pelajar terbaik dalam seluruh eksperimen.

  • params: Daftar untuk menentukan hyperparameter mana yang akan ditampilkan. Dengan membiarkan ini kosong, sistem menampilkan semua hyperparameter yang tersedia.

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot ipotong.

Kepentingan hyperparameter

Plot kepentingan hiperparameter secara visual memberi peringkat hiperparameter berdasarkan pengaruhnya pada performa model dalam eksperimen AutoML atau penyetelan. Ditampilkan biasanya sebagai bagan batang, ini mengukur dampak setiap hyperparameter pada metrik target. Dengan memeriksa plot ini, praktisi dapat membedakan hiperparameter mana yang sangat penting dalam menentukan hasil model dan mana yang memiliki efek minimal.

Utilitas ini juga mengambil argumen berikut:

  • learner: Tentukan pelajar yang ingin Anda pelajari dalam eksperimen. Parameter ini hanya berlaku untuk hasil eksperimen AutoML. Dengan membiarkan ini kosong, sistem memilih pelajar terbaik dalam seluruh eksperimen.

  • params: Daftar untuk menentukan hyperparameter mana yang akan ditampilkan. Dengan membiarkan ini kosong, sistem menampilkan semua hyperparameter yang tersedia.

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

Berikut adalah plot yang dihasilkan:

Grafik plot kepentingan hyperparameter.