AutoML in Fabric (pratinjau)
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.
Penting
Fitur ini dalam pratinjau.
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.Panda pada dataframe Spark: Ketika data input disimpan sebagai dataframe Spark, dataframe dapat dikonversi menjadi
Pandas
pada dataframe menggunakanto_pandas_on_spark()
lalu diteruskanSpark
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.
Input opsional
Berikan berbagai batasan dan input untuk mengonfigurasi uji coba AutoML Anda.
Kendala
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 menyejajarkan jejak AutoML, Anda dapat mengunjungi dokumentasi FLAML untuk pekerjaan Spark 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 | EksponensialSmoothing |
Pohon yang Sangat Acak | Pohon Keputusan | Pohon yang Sangat Acak |
Gradient Boosting | Jaring Elastis | PrakiraanTCN |
K Nearest Neighbors | Pohon yang Sangat Acak | Gradient Boosting |
Light GBM | Gradient Boosting | Holt-Winters Exponential Smoothing |
Linear SVC | K Nearest Neighbors | K Nearest Neighbors |
Regresi Logistik | LARS Lasso | LARS Lasso |
Regresi Logistik dengan Regularisasi L1/L2 | Light GBM | Light GBM |
Naive Bayes | Regresi Logistik dengan Regularisasi L1/L2 | Naive |
Hutan Acak | Hutan Acak | Orbit |
Hutan Acak di Spark | Hutan Acak di Spark | Prophet |
Stochastic Gradient Descent (SGD) | Stochastic Gradient Descent (SGD) | Hutan Acak |
Klasifikasi Vektor Dukungan (SVC) | XGBoost | SARIMAX |
XGboost | XGBoost dengan Kedalaman Terbatas | Penyelamat 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 atau flaml.tune.tune.ExperimentAnalysis
yang dioptimalkan flaml.AutoML
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 sebagai plot kontur dalam eksperimen.plot_edf
: Plot nilai tujuan EDF (fungsi distribusi empiris) eksperimen.plot_timeline
: Plot garis waktu eksperimen.plot_slice
: Plot hubungan parameter sebagai plot ipotong dalam sebuah penelitian.plot_param_importance
: Plot kepentingan hyperparameter eksperimen.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk