학습 시각화(프리뷰)
하이퍼 매개 변수 시험 또는 AutoML 시험은 기계 학습 모델에 대한 최적의 매개 변수를 검색합니다. 각 시험은 여러 실행으로 구성되며 각 실행은 특정 매개 변수 조합을 평가합니다. 사용자는 Fabric에서 ML 실험 항목을 사용하여 이러한 실행을 모니터링할 수 있습니다.
flaml.visualization
모듈은 FLAML에서 실행을 플롯하고 비교하는 기능을 제공합니다. 사용자는 Plotly를 사용하여 AutoML 실험 플롯과 상호 작용할 수 있습니다. 이러한 기능을 사용하려면 사용자가 최적화된 flaml.AutoML
개체 또는 flaml.tune.tune.ExperimentAnalysis
개체를 입력해야 합니다.
이 문서에서는 flaml.visualization
모듈을 사용하여 AutoML 시험 결과를 분석하고 탐색하는 방법을 설명합니다. 하이퍼 매개 변수 시험에도 동일한 단계를 수행할 수 있습니다.
Important
이 기능은 프리뷰 상태입니다.
AutoML 시험 만들기
AutoML은 데이터 세트에 가장 적합한 기계 학습 파이프라인을 식별할 수 있는 자동화된 프로세스 도구 모음을 제공하여 전체 모델링 프로세스를 보다 간단하고 종종 더 정확하게 만듭니다. 기본적으로, 이를 통해 다양한 모델과 하이퍼 매개 변수를 수동으로 튜닝하는 번거로움을 줄일 수 있습니다.
아래 코드 셀에서는 다음을 수행합니다.
- 아이리스 데이터 세트를 로드합니다.
- 데이터를 학습 데이터 세트와 테스트 세트로 분할합니다.
- 학습 데이터에 맞춰 AutoML 시험을 시작합니다.
flaml.visualization
의 시각화를 통해 AutoML 시험의 결과를 살펴볼 수 있습니다.
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)
실험 결과 시각화
AutoML 시험을 실행한 후에는 모델의 성능과 작동 방식을 분석하기 위해 결과를 시각화해야 합니다. 설명서의 이 부분에서는 이러한 목적을 위해 FLAML 라이브러리의 기본 제공 유틸리티를 사용하는 방법을 보여 드립니다.
시각화 모듈 가져오기
이러한 시각화 유틸리티에 액세스하려면 다음 가져오기 명령을 실행합니다.
import flaml.visualization as fviz
최적화 기록
최적화 기록 플롯에는 일반적으로 x축에 시험/반복 횟수가 있고, y축의 성능 메트릭(예: 정확도, RMSE 등)이 있습니다. 시험 횟수가 증가함에 따라 각 시험의 성능을 나타내는 선 또는 산점도가 표시됩니다.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
결과 플롯은 다음과 같습니다.
기능 중요도
기능 중요도 플롯은 모델의 예측을 결정할 때 다양한 입력 기능의 중요성을 이해하는 데 도움이 되는 강력한 시각화 도구입니다.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
결과 플롯은 다음과 같습니다.
병렬 좌표 플롯
병렬 좌표 플롯은 변수 또는 하이퍼 매개 변수에 해당하는 여러 세로선(축)을 그려 다차원 데이터를 나타내는 시각화 도구이며, 데이터 요소는 이러한 축에 연결된 선으로 표시됩니다. AutoML 또는 튜닝 실험의 컨텍스트에서, 다양한 하이퍼 매개 변수 조합의 성능을 시각화하고 분석하는 데 중요한 역할을 합니다. 고성능 구성의 경로를 추적하면 하이퍼 매개 변수 선택과 그 상호 작용의 패턴이나 추세를 식별할 수 있습니다. 이 플롯은 어떤 조합이 최적의 성능으로 이어지는지 이해하고, 추가 탐색을 위한 잠재적 영역을 정확히 찾아내고, 서로 다른 하이퍼 매개 변수 간의 상충을 식별하는 데 도움이 됩니다.
이 유틸리티는 다음과 같은 다른 인수를 사용합니다.
learner
: 실험에서 연구하려는 학습자를 지정합니다. 이 매개 변수는 AutoML 실험 결과에만 적용됩니다. 이 값을 비워 두면 시스템은 전체 실험에서 가장 좋은 학습자를 선택합니다.params
: 표시할 하이퍼 매개 변수를 지정하는 목록입니다. 이 값을 비워 두면 시스템에서 사용 가능한 모든 하이퍼 매개 변수를 표시합니다.
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()
결과 플롯은 다음과 같습니다.
등고선 플롯
등고선 플롯은 3차원 데이터를 2차원으로 시각화합니다. 여기서 x축과 y축은 두 개의 하이퍼 매개 변수를 나타내고 등고선 또는 채워진 등고선은 성능 메트릭 수준(예: 정확도 또는 손실)을 나타냅니다. AutoML 또는 튜닝 실험의 컨텍스트에서, 등고선 플롯은 두 하이퍼 매개 변수 간의 관계와 모델 성능에 미치는 결합된 효과를 이해하는 데 유용합니다.
등고선의 밀도와 위치를 검사하여 성능이 최적화된 하이퍼 매개 변수 공간의 영역을 식별하고, 하이퍼 매개 변수 간의 잠재적인 상충을 확인하고, 상호 작용에 대한 인사이트를 얻을 수 있습니다. 이 시각화는 검색 공간과 튜닝 프로세스를 구체화하는 데 도움이 됩니다.
이 유틸리티는 또한 다음 인수를 사용합니다.
learner
: 실험에서 연구하려는 학습자를 지정합니다. 이 매개 변수는 AutoML 실험 결과에만 적용됩니다. 이 값을 비워 두면 시스템은 전체 실험에서 가장 좋은 학습자를 선택합니다.params
: 표시할 하이퍼 매개 변수를 지정하는 목록입니다. 이 값을 비워 두면 시스템에서 사용 가능한 모든 하이퍼 매개 변수를 표시합니다.
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()
결과 플롯은 다음과 같습니다.
경험적 분포 함수
EDF(경험적 분포 함수) 플롯은 종종 단계 함수로 시각화되며, 데이터 요소가 특정 값보다 작거나 같은 누적 확률을 나타냅니다. AutoML 또는 튜닝 실험 내에서 EDF 플롯을 사용하여 다양한 하이퍼 매개 변수 구성에서 모델 성능의 분포를 시각화할 수 있습니다.
다양한 지점에서 곡선의 가파른 정도나 평탄한 정도를 관찰함으로써 각각 좋은 모델 성능과 나쁜 모델 성능의 농도를 파악할 수 있습니다. 이 시각화는 튜닝 프로세스의 전반적인 효율성에 대한 인사이트를 제공하여 시도된 구성 대부분이 만족스러운 결과를 생성하는지 아니면 몇 가지 구성만이 돋보이는지를 강조하여 보여줍니다.
참고 항목
AutoML 실험의 경우 학습 중에 여러 모델이 적용됩니다. 각 학습자의 시험은 최적화 시리즈로 표현됩니다. 하이퍼 매개 변수 튜닝 실험의 경우 평가되는 학습자는 단 하나입니다. 그러나 각 학습자의 추세를 확인하기 위해 추가 튜닝 실험을 제공할 수 있습니다.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
결과 플롯은 다음과 같습니다.
타임라인 플롯
타임라인 플롯은 종종 Gantt 차트 또는 막대 시퀀스로 표현되며, 시간 경과에 따른 작업의 시작, 기간, 완료를 시각화합니다. AutoML 또는 튜닝 실험의 컨텍스트에서, 타임라인 플롯은 다양한 모델 평가의 진행률과 각각의 기간을 시간에 따라 표시할 수 있습니다. 이 플롯을 관찰함으로써 사용자는 검색 프로세스의 효율성을 파악하고, 잠재적인 병목 상태 또는 유휴 기간을 식별하고, 다양한 하이퍼 매개 변수 평가의 시간적 역학을 이해할 수 있습니다.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
결과 플롯은 다음과 같습니다.
플롯 조각화
연구에서 매개 변수 관계를 슬라이스 플롯으로 표시합니다.
이 유틸리티는 또한 다음 인수를 사용합니다.
learner
: 실험에서 연구하려는 학습자를 지정합니다. 이 매개 변수는 AutoML 실험 결과에만 적용됩니다. 이 값을 비워 두면 시스템은 전체 실험에서 가장 좋은 학습자를 선택합니다.params
: 표시할 하이퍼 매개 변수를 지정하는 목록입니다. 이 값을 비워 두면 시스템에서 사용 가능한 모든 하이퍼 매개 변수를 표시합니다.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
결과 플롯은 다음과 같습니다.
하이퍼 매개 변수 중요도
하이퍼 매개 변수 중요도 플롯은 AutoML 또는 튜닝 실험에서 모델 성능에 미치는 영향을 기준으로 하이퍼 매개 변수의 순위를 시각적으로 지정합니다. 일반적으로 가로 막대형 차트로 표시되며, 각 하이퍼 매개 변수가 대상 메트릭에 미치는 영향을 수량화합니다. 이 플롯을 검토함으로써 실무자는 어떤 하이퍼 매개 변수가 모델 결과를 결정하는 데 중요한 역할을 하는지, 어떤 하이퍼 매개 변수가 최소한의 영향을 미치는지 분별할 수 있습니다.
이 유틸리티는 또한 다음 인수를 사용합니다.
learner
: 실험에서 연구하려는 학습자를 지정합니다. 이 매개 변수는 AutoML 실험 결과에만 적용됩니다. 이 값을 비워 두면 시스템은 전체 실험에서 가장 좋은 학습자를 선택합니다.params
: 표시할 하이퍼 매개 변수를 지정하는 목록입니다. 이 값을 비워 두면 시스템에서 사용 가능한 모든 하이퍼 매개 변수를 표시합니다.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
결과 플롯은 다음과 같습니다.