Aracılığıyla paylaş


Eğitim görselleştirmeleri (önizleme)

Hiper parametre denemesi veya AutoML denemesi, makine öğrenmesi modeli için en uygun parametreleri arar. Her deneme, her çalıştırmanın belirli bir parametre bileşimini değerlendirdiği birden çok çalıştırmadan oluşur. Kullanıcılar, Doku'daki ML deneme öğelerini kullanarak bu çalıştırmaları izleyebilir.

Modül, flaml.visualization FLAML'de çalıştırmaları çizmek ve karşılaştırmak için işlevler sunar. Kullanıcılar AutoML deneme çizimleriyle etkileşim kurmak için Plotly kullanabilir. Bu işlevleri kullanmak için kullanıcıların iyileştirilmiş flaml.AutoML veya flaml.tune.tune.ExperimentAnalysis nesne girişlerini kullanması gerekir.

Bu makalede, AutoML deneme sonuçlarınızı analiz etmek ve araştırmak için modülü nasıl kullanacağınız flaml.visualization öğretildi. Hiper parametre denemeniz için de aynı adımları izleyebilirsiniz.

Önemli

Bu özellik önizleme aşamasındadır.

AutoML deneme sürümü oluşturma

AutoML, veri kümeniz için en iyi makine öğrenmesi işlem hattını belirleyebilen bir otomatik süreçler paketi seçerek tüm modelleme işlemini daha anlaşılır ve genellikle daha doğru hale getirir. Özünde, farklı modelleri ve hiper parametreleri el ile ayarlama zahmetini sizi kurtarır.

Aşağıdaki kod hücresinde şunları yapacağız:

  1. Iris veri kümesini yükleyin.
  2. Verileri eğitim ve test kümelerine bölün.
  3. Eğitim verilerimizi sığdırmak için bir AutoML denemesi başlatın.
  4. 'den alınan görselleştirmelerle flaml.visualizationAutoML denememizin sonuçlarını keşfedin.
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)

Deneme sonuçlarını görselleştirme

AutoML denemesini çalıştırdıktan sonra modellerin ne kadar iyi performans sergilediğini ve nasıl davrandıklarını analiz etmek için sonuçları görselleştirmeniz gerekir. Belgelerimizin bu bölümünde, flaml kitaplığındaki yerleşik yardımcı programların bu amaçla nasıl kullanılacağını göstereceğiz.

Görselleştirme modülünü içeri aktarma

Bu görselleştirme yardımcı programlarına erişmek için aşağıdaki içeri aktarma komutunu çalıştırıyoruz:

import flaml.visualization as fviz

İyileştirme geçmişi

İyileştirme geçmişi çiziminde genellikle x ekseninde deneme/yineleme sayısı ve y ekseninde performans ölçümü (doğruluk, RMSE vb.) bulunur. Deneme sayısı arttıkça, her denemenin performansını gösteren bir çizgi veya dağılım çizimi görürsünüz.

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

Sonuçta elde edilen çizim aşağıdadır:

İyileştirme geçmişi çizimi grafiği.

Özellik önemi

Özellik önem çizimi, bir modelin tahminlerini belirlemede farklı giriş özelliklerinin önemini anlamanıza olanak tanıyan güçlü bir görselleştirme aracıdır.

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

Sonuçta elde edilen çizim aşağıdadır:

Özellik önem grafiği.

Paralel koordinat çizimi

Paralel koordinat çizimi, değişkenlere veya hiper parametrelere karşılık gelen birden çok dikey çizgi (eksen) çizerek çok boyutlu verileri temsil eden ve veri noktalarının bu eksenler arasında bağlı çizgiler olarak çizilmiş olduğu bir görselleştirme aracıdır. AutoML veya ayarlama denemesi bağlamında, farklı hiper parametre birleşimlerinin performansını görselleştirme ve analiz etme açısından önemlidir. Yüksek performanslı yapılandırmaların yollarını izleyerek, hiper parametre seçimlerindeki desenleri veya eğilimleri ve bunların etkileşimlerini ayırt edebilirsiniz. Bu çizim, hangi kombinasyonların en iyi performansa yol açtığını anlamaya, daha fazla keşif için olası alanları belirlemeye ve farklı hiper parametreler arasındaki dengeleri belirlemeye yardımcı olur.

Bu yardımcı program aşağıdaki diğer bağımsız değişkenleri alır:

  • learner: Denemede çalışmayı planladığınız öğrenciyi belirtin. Bu parametre yalnızca AutoML deneme sonuçları için geçerlidir. Sistem, bunu boş bırakarak tüm denemedeki en iyi öğrenciyi seçer.

  • params: Hangi hiper parametrenin görüntüleneceğini belirten bir liste. Sistem, bu alanı boş bırakarak tüm kullanılabilir hiper parametreleri görüntüler.

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

Sonuçta elde edilen çizim aşağıdadır:

Paralel koordinat çizimi grafiği.

Kontur çizimi

Dağılım çizimi üç boyutlu verileri iki boyutta görselleştirir; burada x ve y eksenleri iki hiper parametreyi temsil eder ve kontur çizgileri veya dolgulu konturlar bir performans ölçümünün düzeylerini (doğruluk veya kayıp gibi) gösterir. AutoML veya ayarlama denemesi bağlamında dağılım çizimi, iki hiper parametre arasındaki ilişkiyi ve bunların model performansı üzerindeki birleşik etkisini anlamak için yararlıdır.

Kontur çizgilerinin yoğunluğu ve konumlandırmasını inceleyerek, performansın iyileştirildiği hiper parametre alanı bölgelerini tanımlayabilir, hiper parametreler arasındaki olası dengeleri belirleyebilir ve etkileşimleri hakkında içgörüler elde edebilirsiniz. Bu görselleştirme, arama alanını ve ayarlama işlemini iyileştirmeye yardımcı olur.

Bu yardımcı program aşağıdaki bağımsız değişkenleri de alır:

  • learner: Denemede çalışmayı planladığınız öğrenciyi belirtin. Bu parametre yalnızca AutoML deneme sonuçları için geçerlidir. Sistem, bunu boş bırakarak tüm denemedeki en iyi öğrenciyi seçer.

  • params: Hangi hiper parametrenin görüntüleneceğini belirten bir liste. Sistem, bu alanı boş bırakarak tüm kullanılabilir hiper parametreleri görüntüler.

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

Sonuçta elde edilen çizim aşağıdadır:

Kontur çizimi grafiği.

Ampirik dağılım işlevi

Genellikle adım işlevi olarak görselleştirilen ampirik dağılım işlevi (EDF) çizimi, veri noktalarının belirli bir değerden küçük veya buna eşit olma kümülatif olasılığını temsil eder. AutoML veya ayarlama denemesinde, model performanslarının farklı hiper parametre yapılandırmaları arasındaki dağılımını görselleştirmek için bir EDF çizimi kullanılabilir.

Eğrinin dikliğini veya düzlüğünü çeşitli noktalarda gözlemleyerek, sırasıyla iyi veya düşük model performanslarının konsantrasyonunu anlayabilirsiniz. Bu görselleştirme, ayarlama işleminin genel etkinliğine ilişkin içgörüler sunar ve denenen yapılandırmaların çoğunun tatmin edici sonuçlar verip vermediğini veya yalnızca birkaç yapılandırmanın öne çıkıp çıkmadığını vurgular.

Not

AutoML denemeleri için eğitim sırasında birden çok model uygulanır. Her öğrenci denemesi bir iyileştirme serisi olarak temsil edilir. Hiper parametre ayarlama denemeleri için değerlendirilen tek bir öğrenci olacaktır. Ancak, her öğrencideki eğilimleri görmek için ek ayarlama denemeleri sağlayabilirsiniz.

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

Sonuçta elde edilen çizim aşağıdadır:

Ampirik dağılım işlevi çiziminin grafiği.

Zaman çizelgesi çizimi

Genellikle Gantt grafiği veya çubuk dizisi olarak gösterilen bir zaman çizelgesi çizimi, görevlerin zaman içindeki başlangıcını, süresini ve tamamlanmasını görselleştirir. AutoML veya ayarlama denemesi bağlamında, zaman çizelgesi çizimi çeşitli model değerlendirmelerinin ilerleme durumunu ve zamana göre çizilen ilgili sürelerini gösterebilir. Kullanıcılar bu çizimi gözlemleyerek arama sürecinin verimliliğini kavrayabilir, olası performans sorunlarını veya boşta kalan dönemleri belirleyebilir ve farklı hiper parametre değerlendirmelerinin zamansal dinamiklerini anlayabilir.

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

Sonuçta elde edilen çizim aşağıdadır:

Zaman çizelgesi çizimi grafiği.

Dilim çizimi

Bir çalışmada parametre ilişkisini dilim çizimi olarak çizme.

Bu yardımcı program aşağıdaki bağımsız değişkenleri de alır:

  • learner: Denemede çalışmayı planladığınız öğrenciyi belirtin. Bu parametre yalnızca AutoML deneme sonuçları için geçerlidir. Sistem, bunu boş bırakarak tüm denemedeki en iyi öğrenciyi seçer.

  • params: Hangi hiper parametrenin görüntüleneceğini belirten bir liste. Sistem, bu alanı boş bırakarak tüm kullanılabilir hiper parametreleri görüntüler.

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

Sonuçta elde edilen çizim aşağıdadır:

Dilim çizimi grafiği.

Hiper parametre önemi

Hiper parametre önem çizimi, automl veya ayarlama denemesindeki model performansı üzerindeki etkilerine göre hiper parametreleri görsel olarak derecelendirir. Genellikle çubuk grafik olarak görüntülenen bu grafik, her hiper parametrenin hedef ölçüm üzerindeki etkisini ölçer. Bu çizimi inceleyen uygulayıcılar, model sonuçlarının belirlenmesinde hangi hiper parametrelerin özet olduğunu ve hangilerinin en az etkiye sahip olduğunu ayırt edebilir.

Bu yardımcı program aşağıdaki bağımsız değişkenleri de alır:

  • learner: Denemede çalışmayı planladığınız öğrenciyi belirtin. Bu parametre yalnızca AutoML deneme sonuçları için geçerlidir. Sistem, bunu boş bırakarak tüm denemedeki en iyi öğrenciyi seçer.

  • params: Hangi hiper parametrenin görüntüleneceğini belirten bir liste. Sistem, bu alanı boş bırakarak tüm kullanılabilir hiper parametreleri görüntüler.

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

Sonuçta elde edilen çizim aşağıdadır:

Hiper parametre önem grafiği.