Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
AutoML (Automated Pembelajaran Mesin) adalah kumpulan metode dan alat yang mengotomatiskan pelatihan dan pengoptimalan model pembelajaran mesin dengan sedikit keterlibatan manusia. Tujuan AutoML adalah untuk menyederhanakan dan mempercepat proses memilih model pembelajaran mesin dan hiperparameter terbaik untuk himpunan data tertentu, yang biasanya menuntut banyak keterampilan dan daya komputasi.
Dalam Fabric, ilmuwan data dapat menggunakan flaml.AutoML untuk mengotomatiskan tugas pembelajaran mesin mereka.
AutoML dapat membantu profesional dan pengembang ML dari berbagai sektor untuk:
- Membangun solusi ML dengan pengkodian minimal
- Mengurangi waktu dan biaya
- Menerapkan praktik terbaik ilmu data
- Memecahkan masalah dengan cepat dan efisien
Alur kerja AutoML
flaml.AutoML adalah kelas untuk AutoML berdasarkan tugas. Ini dapat digunakan sebagai estimator gaya Scikit-learn dengan metode yang biasa cocok dan prediksi.
Untuk memulai uji coba AutoML, pengguna hanya perlu menyediakan data pelatihan dan jenis tugas. Dengan pengalaman MLflow terintegrasi di Fabric, pengguna juga dapat memeriksa berbagai eksekusi yang dicoba dalam uji coba untuk melihat bagaimana model akhir dipilih.
Data pelatihan
Di Fabric, pengguna dapat meneruskan jenis input berikut ke fungsi AutoML fit :
Numpy Array: Saat data input disimpan dalam array Numpy, data tersebut diteruskan sebagai
fit()X_train dan y_train.Dataframe Pandas: Saat data input disimpan dalam dataframe Pandas, dataframe tersebut diteruskan ke
fit()baik sebagai X_train dan y_train, atau sebagai dataframe dan label.Pandas pada dataframe Spark: Ketika data input disimpan sebagai dataframe Spark, dapat diubah menjadi
Pandaspada dataframe menggunakanSparkdan kemudian diteruskan kefit()sebagai dataframe dan label.from flaml.automl.spark.utils import to_pandas_on_spark psdf = to_pandas_on_spark(sdf) automl.fit(dataframe=psdf, label='Bankrupt?', isUnbalance=True, **settings)
Masalah pembelajaran mesin
Pengguna dapat menentukan tugas pembelajaran mesin menggunakan task argumen . Ada berbagai tugas pembelajaran mesin yang didukung, termasuk:
- Klasifikasi: Tujuan utama model klasifikasi adalah untuk memprediksi kategori data baru mana yang termasuk dalam berdasarkan pembelajaran dari data pelatihannya. Contoh klasifikasi umum termasuk deteksi penipuan, pengenalan tulisan tangan, dan deteksi objek.
- Regresi: Model regresi memprediksi nilai output numerik berdasarkan prediktor independen. Dalam regresi, tujuannya adalah untuk membantu membangun hubungan di antara variabel prediktor independen dengan memperkirakan bagaimana satu variabel berdampak pada yang lain. Misalnya, harga mobil berdasarkan fitur seperti, jarak tempuh gas, peringkat keamanan, dll.
- Prakiraan Rangkaian Waktu: Ini digunakan untuk memprediksi nilai di masa mendatang berdasarkan titik data historis yang diurutkan menurut waktu. Dalam rangkaian waktu, data dikumpulkan dan dicatat secara berkala selama periode tertentu, seperti harian, mingguan, bulanan, atau tahunan. Tujuan prakiraan rangkaian waktu adalah untuk mengidentifikasi pola, tren, dan musiman dalam data lalu menggunakan informasi ini untuk membuat prediksi tentang nilai di masa mendatang.
Untuk mempelajari selengkapnya tentang tugas lain yang didukung di FLAML, Anda dapat mengunjungi dokumentasi tentang tugas AutoML di FLAML.
Masukan opsional
Berikan berbagai batasan dan input untuk mengonfigurasi uji coba AutoML Anda.
Batasan
Saat membuat uji coba AutoML, pengguna juga dapat mengonfigurasi batasan pada proses AutoML, argumen konstruktor dari estimator potensial, jenis model yang dicoba di AutoML, dan bahkan batasan pada metrik uji coba AutoML.
Misalnya, kode di bawah ini memungkinkan pengguna menentukan batasan metrik pada uji coba AutoML.
metric_constraints = [("train_loss", "<=", 0.1), ("val_loss", "<=", 0.1)]
automl.fit(X_train, y_train, max_iter=100, train_time_limit=1, metric_constraints=metric_constraints)
Untuk mempelajari selengkapnya tentang konfigurasi ini, Anda dapat mengunjungi dokumentasi tentang konfigurasi di FLAML.
Metrik pengoptimalan
Selama pelatihan, fungsi AutoML membuat banyak uji coba, yang mencoba algoritma dan parameter yang berbeda. Alat AutoML melakukan iterasi melalui algoritma ML dan hiperparameter. Dalam proses ini, setiap iterasi membuat model dengan skor pelatihan. Semakin baik skor untuk metrik yang ingin Anda optimalkan, semakin baik model dianggap "sesuai" data Anda. Metrik pengoptimalan ditentukan melalui metric argumen . Ini dapat berupa string, yang mengacu pada metrik bawaan, atau fungsi yang ditentukan pengguna.
Penyetelan paralel
Dalam beberapa kasus, Anda mungkin ingin mempercepat uji coba AutoML Anda dengan menggunakan Apache Spark untuk menyejajarkan pelatihan Anda. Untuk kluster Spark, secara default, FLAML meluncurkan satu uji coba per eksekutor. Anda juga dapat menyesuaikan jumlah uji coba bersamaan dengan menggunakan n_concurrent_trials argumen .
automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)
Untuk mempelajari selengkapnya tentang cara menjalankan tugas AutoML secara paralel, Anda dapat mengunjungi dokumentasi FLAML untuk pekerjaan Spark secara paralel.
Lacak dengan MLflow
Anda juga dapat menggunakan integrasi Fabric MLflow untuk menangkap metrik, parameter, dan metrik jejak yang dijelajahi.
import mlflow
mlflow.autolog()
with mlflow.start_run(nested=True):
automl.fit(dataframe=pandas_df, label='Bankrupt?', mlflow_exp_name = "automl_spark_demo")
# You can also provide a run_name pre-fix for the child runs
automl_experiment = flaml.AutoML()
automl_settings = {
"metric": "r2",
"task": "regression",
"use_spark": True,
"mlflow_exp_name": "test_doc",
"estimator_list": [
"lgbm",
"rf",
"xgboost",
"extra_tree",
"xgb_limitdepth",
], # catboost does not yet support mlflow autologging
}
with mlflow.start_run(run_name=f"automl_spark_trials"):
automl_experiment.fit(X_train=train_x, y_train=train_y, **automl_settings)
Model yang didukung
AutoML in Fabric mendukung model berikut:
| Klasifikasi | Regresi | Prakiraan Rangkaian Waktu |
|---|---|---|
| (PySpark) Pengklasifikasi Pohon Yang Didorong Gradien (GBT) | (PySpark) Regresi Kelangsungan Hidup Waktu Kegagalan Dipercepat (AFT) | Arimax |
| (PySpark) SVM Linier | (PySpark) Regresi Linier Umum | AutoARIMA |
| (PySpark) Naive Bayes | (PySpark) Regresi Pohon yang Ditingkatkan Gradien (GBT) | Tengah |
| (Synapse) LightGBM | (PySpark) Regresi Linier | CatBoost |
| CatBoost | (Synapse) LightGBM | Pohon Keputusan |
| Pohon Keputusan | CatBoost | PemusatanEksponensial |
| Pohon yang Sangat Acak | Pohon Keputusan | Pohon yang Sangat Acak |
| Peningkatan Gradien | Elastic Net | PrakiraanTCN |
| K Tetangga Terdekat | Pohon yang Sangat Acak | Gradient Boosting (Peningkatan Gradien) |
| Light GBM | Peningkatan Gradien | Holt-Winters Smoothing Eksponensial |
| SVC Linier | K Tetangga Terdekat | K Tetangga Terdekat |
| Regresi Logistik | LARS Lasso | LARS Lasso |
| Regresi Logistik dengan Regularisasi L1/L2 | Light GBM | Light GBM |
| Naive Bayes (Pengklasifikasi Probabilistik) | Regresi Logistik dengan Regularisasi L1/L2 | Naif |
| Random Forest (Hutan Acak) | Random Forest (Hutan Acak) | Orbit |
| Random Forest di Spark | Random Forest di Spark | Nabi |
| Stochastic Gradient Descent (SGD) | Penurunan Gradien Stokastik (SGD) | Random Forest (Hutan Acak) |
| Support Vector Classification (SVC) | XGBoost | SARIMAX |
| XGboost | XGBoost dengan Kedalaman Terbatas | Rata-rata Musiman |
| XGBoost dengan Kedalaman Terbatas | MusimanNaif | |
| Temporal Fusion Transformer | ||
| XGBoost | ||
| XGBoost untuk Time Series | ||
| XGBoost dengan Kedalaman Terbatas untuk Time Series | ||
| ElasticNet |
Memvisualisasikan hasil
Modul ini flaml.visualization menyediakan fungsi utilitas untuk merencanakan proses pengoptimalan menggunakan Plotly. Dengan memanfaatkan Plotly, pengguna dapat secara interaktif menjelajahi hasil eksperimen AutoML mereka. Untuk menggunakan fungsi plot ini, berikan objek flaml.AutoML atau flaml.tune.tune.ExperimentAnalysis yang dioptimalkan sebagai input.
Anda bisa menggunakan fungsi berikut dalam buku catatan Anda:
-
plot_optimization_history: Plot riwayat pengoptimalan semua uji coba dalam eksperimen. -
plot_feature_importance: Plot kepentingan untuk setiap fitur dalam himpunan data. -
plot_parallel_coordinate: Memplot hubungan parameter dimensi tinggi dalam eksperimen. -
plot_contour: Plot hubungan parameter dalam bentuk plot kontur dalam eksperimen. -
plot_edf: Plot nilai tujuan EDF (fungsi distribusi empiris) eksperimen. -
plot_timeline: Buat plot garis waktu dari eksperimen. -
plot_slice: Plot hubungan parameter sebagai plot potongan dalam sebuah penelitian. -
plot_param_importance: Visualisasikan kepentingan hyperparameter dalam percobaan.