Dokuda AutoML (önizleme)
AutoML (Otomatik Makine Öğrenmesi), az insan katılımıyla makine öğrenmesi modeli eğitim ve iyileştirmesini otomatik hale getiren yöntem ve araçlardan oluşan bir koleksiyondur. AutoML'nin amacı, genellikle çok fazla beceri ve bilgi işlem gücü talep eden belirli bir veri kümesi için en iyi makine öğrenmesi modelini ve hiper parametreleri seçme sürecini basitleştirmek ve hızlandırmaktır.
Önemli
Bu özellik önizleme aşamasındadır.
Doku'da veri bilimciler makine öğrenmesi görevlerini otomatikleştirmek için kullanabilir flaml.AutoML
.
AutoML, ML uzmanlarına ve geliştiricilerine farklı sektörlerden aşağıdakiler için yardımcı olabilir:
- Minimum kodlama ile ML çözümleri oluşturma
- Süreyi ve maliyeti azaltma
- Veri bilimi en iyi uygulamalarını uygulama
- Sorunları hızlı ve verimli bir şekilde çözme
AutoML iş akışı
flaml.AutoML
, göreve göre AutoML için bir sınıftır. Her zamanki sığdırma ve tahmin yöntemleriyle Scikit-learn stili tahmin aracı olarak kullanılabilir.
AutoML deneme sürümünü başlatmak için kullanıcıların yalnızca eğitim verilerini ve görev türünü sağlaması gerekir. Doku'daki tümleşik MLflow deneyimleri sayesinde kullanıcılar, deneme sürümünde denenen farklı çalıştırmaları inceleyerek son modelin nasıl seçildiğini de görebilir.
Eğitim verileri
Doku'da kullanıcılar AutoML fit
işlevine aşağıdaki giriş türlerini geçirebilir:
Numpy Dizisi: Giriş verileri bir Numpy dizisinde depolandığında, X_train ve y_train olarak geçirilir
fit()
.Pandas veri çerçevesi: Giriş verileri bir Pandas veri çerçevesinde depolandığında, X_train ve y_train olarak ya da veri çerçevesi ve etiket olarak geçirilir
fit()
.Spark veri çerçevesi üzerinde Pandas: Giriş verileri Spark veri çerçevesi olarak depolandığında, kullanılarak veri çerçevesine dönüştürülebilir
Pandas
ve ardından veri çerçevesi ve etiket olarak geçirilebilirfit()
.Spark
to_pandas_on_spark()
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)
Makine öğrenmesi sorunu
Kullanıcılar, bağımsız değişkenini kullanarak makine öğrenmesi task
görevini belirtebilir. Aşağıdakiler de dahil olmak üzere desteklenen çeşitli makine öğrenmesi görevleri vardır:
- Sınıflandırma: Sınıflandırma modellerinin ana hedefi, eğitim verilerinden elde edilen öğrenmelere göre yeni verilerin hangi kategorilere gireceğini tahmin etmektir. Yaygın sınıflandırma örnekleri sahtekarlık algılama, el yazısı tanıma ve nesne algılamadır.
- Regresyon: Regresyon modelleri, bağımsız tahmincilere göre sayısal çıkış değerlerini tahmin eder. Regresyonda amaç bir değişkenin diğerlerini nasıl etkilediğini tahmin ederek söz konusu bağımsız gösterge değişkenleri arasındaki ilişkiyi oluşturmaya yardımcı olmaktır. Örneğin, otomobil fiyatları, gaz kilometresi, güvenlik derecelendirmesi vb. özelliklere göre
- Zaman Serisi Tahmini: Bu, zamana göre sıralanmış geçmiş veri noktalarına göre gelecekteki değerleri tahmin etmek için kullanılır. Bir zaman serisinde veriler günlük, haftalık, aylık veya yıllık gibi belirli bir dönemde düzenli aralıklarla toplanır ve kaydedilir. Zaman serisi tahmininin amacı, verilerdeki desenleri, eğilimleri ve mevsimselliği belirlemek ve ardından bu bilgileri kullanarak gelecekteki değerlerle ilgili tahminler yapmaktır.
FLAML'de desteklenen diğer görevler hakkında daha fazla bilgi edinmek için FLAML'deki AutoML görevleriyle ilgili belgeleri ziyaret edebilirsiniz.
İsteğe bağlı girişler
AutoML denemenizi yapılandırmak için çeşitli kısıtlamalar ve girişler sağlayın.
Sınırlamalar
Bir AutoML deneme sürümü oluştururken, kullanıcılar AutoML işlemiyle ilgili kısıtlamaları, olası tahmincilerin oluşturucu bağımsız değişkenlerini, AutoML'de denenen model türlerini ve hatta AutoML denemesinin ölçümleri üzerindeki kısıtlamaları da yapılandırabilir.
Örneğin, aşağıdaki kod kullanıcıların AutoML denemesinde bir ölçüm kısıtlaması belirtmesine olanak tanır.
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)
Bu yapılandırmalar hakkında daha fazla bilgi edinmek için FLAML'deki yapılandırmalarla ilgili belgeleri ziyaret edebilirsiniz.
İyileştirme ölçümü
Eğitim sırasında AutoML işlevi, farklı algoritmaları ve parametreleri deneyen birçok deneme oluşturur. AutoML aracı ML algoritmaları ve hiper parametreler aracılığıyla yinelenir. Bu işlemde, her yineleme bir eğitim puanına sahip bir model oluşturur. İyileştirme yapmak istediğiniz ölçümün puanı ne kadar iyi olursa, modelin verilerinizi "sığdırmak" için o kadar iyi olduğu kabul edilir. İyileştirme ölçümü bağımsız değişken aracılığıyla metric
belirtilir. Yerleşik ölçüme başvuran bir dize veya kullanıcı tanımlı bir işlev olabilir.
Paralel ayarlama
Bazı durumlarda, eğitiminizi paralel hale getirmek için Apache Spark kullanarak AutoML denemenizi hızlandırmak isteyebilirsiniz. Spark kümeleri için FLAML varsayılan olarak yürütücü başına bir deneme başlatır. Bağımsız değişkenini kullanarak n_concurrent_trials
eşzamanlı deneme sayısını da özelleştirebilirsiniz.
automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)
AutoML izlerinizi paralelleştirme hakkında daha fazla bilgi edinmek için paralel Spark işleri için FLAML belgelerini ziyaret edebilirsiniz.
MLflow ile izleme
Keşfedilen izlerin ölçümlerini, parametrelerini ve ölçümlerini yakalamak için Doku MLflow tümleştirmesini de kullanabilirsiniz.
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)
Desteklenen modeller
Dokuda AutoML aşağıdaki modelleri destekler:
Sınıflandırma | Gerileme | Zaman Serisi Tahmini |
---|---|---|
(PySpark) Gradyan Artırılmış Ağaçlar (GBT) Sınıflandırıcısı | (PySpark) Hızlandırılmış Hata Süresi (AFT) Hayatta Kalma Regresyonu | Arimax |
(PySpark) Doğrusal SVM | (PySpark) Genelleştirilmiş Doğrusal Regresyon | AutoARIMA |
(PySpark) Naive Bayes | (PySpark) Gradyan Destekli Ağaçlar (GBT) Regresyonu | Ortalama |
(Synapse) LightGBM | (PySpark) Doğrusal Regresyon | CatBoost |
CatBoost | (Synapse) LightGBM | Karar Ağacı |
Karar Ağacı | CatBoost | ExponentialSmoothing |
Aşırı Rastgele Ağaçlar | Karar Ağacı | Aşırı Rastgele Ağaçlar |
Gradyan Artırma | Elastik Net | ForecastTCN |
En Yakın K Komşu | Aşırı Rastgele Ağaçlar | Gradyan Artırma |
Işık GBM | Gradyan Artırma | Holt-Winters Üstel Düzeltme |
Doğrusal SVC | En Yakın K Komşu | En Yakın K Komşu |
Lojistik Regresyon | LARS Lasso | LARS Lasso |
L1/L2 Normalleştirme ile Lojistik Regresyon | Işık GBM | Işık GBM |
Sade Bayes | L1/L2 Normalleştirme ile Lojistik Regresyon | Saf |
Rastgele Orman | Rastgele Orman | Yörünge |
Spark üzerinde Rastgele Orman | Spark üzerinde Rastgele Orman | Peygamber |
Stokastik Gradyan Azalma (SGD) | Stokastik Gradyan Azalma (SGD) | Rastgele Orman |
Destek Vektör Sınıflandırması (SVC) | XGBoost | SARIMAX |
XGboost | Sınırlı Derinlikli XGBoost | SeasonalAverage |
Sınırlı Derinlikli XGBoost | SeasonalNaive | |
Zamana Bağlı Fusion Transformatörü | ||
XGBoost | ||
Zaman Serisi için XGBoost | ||
Zaman Serisi için Sınırlı Derinlikli XGBoost | ||
ElasticNet |
Sonuçları görselleştirme
Modül, flaml.visualization
Plotly kullanarak iyileştirme işlemini çizmeye yönelik yardımcı program işlevleri sağlar. Kullanıcılar Plotly'den yararlanarak AutoML deneme sonuçlarını etkileşimli olarak keşfedebilir. Bu çizim işlevlerini kullanmak için, iyileştirilmiş flaml.AutoML
veya flaml.tune.tune.ExperimentAnalysis
nesnenizi giriş olarak sağlayın.
Not defterinizde aşağıdaki işlevleri kullanabilirsiniz:
plot_optimization_history
: Denemedeki tüm denemelerin iyileştirme geçmişini çizin.plot_feature_importance
: Veri kümesindeki her özellik için çizim önemi.plot_parallel_coordinate
: Denemedeki yüksek boyutlu parametre ilişkilerini çizin.plot_contour
: Denemede parametre ilişkisini dağılım çizimi olarak çizin.plot_edf
: Denemenin EDF (ampirik dağılım işlevi) hedef değerini çizin.plot_timeline
: Denemenin zaman çizelgesini çizin.plot_slice
: Bir çalışmada parametre ilişkisini dilim çizimi olarak çizin.plot_param_importance
: Denemenin hiper parametre önemini çizin.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin