라이트GBM 하이퍼파라미터 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

라이트GBM 하이퍼파라미터

다음 표에는 Amazon SageMaker LightGBM 알고리즘에 필요하거나 가장 일반적으로 사용되는 하이퍼파라미터의 하위 집합이 포함되어 있습니다. 이들은 사용자가 데이터를 통해 모델 파라미터를 쉽게 예측하기 위해 설정하는 파라미터입니다. SageMaker LightGBM 알고리즘은 오픈 소스 LightGBM 패키지를 구현한 것입니다.

참고

기본 하이퍼파라미터는 라이트GBM 샘플 노트북의 예제 데이터 세트를 기준으로 정해집니다.

기본적으로 SageMaker LightGBM 알고리즘은 분류 문제의 유형에 따라 평가 지표 및 목표 함수를 자동으로 선택합니다. LightGBM 알고리즘은 데이터의 레이블 수를 기반으로 분류 문제의 유형을 감지합니다. 회귀 문제의 경우 평가 지표는 평균 제곱근 오차이고 목적 함수는 L2 손실입니다. 바이너리 분류 문제의 경우 평가 지표와 목적 함수는 모두 바이너리 교차 엔트로피입니다. 다중 클래스 분류 문제의 경우 평가 지표는 다중 클래스 교차 엔트로피이고 목적 함수는 소프트맥스입니다. metric 하이퍼파라미터를 사용하여 기본 평가 지표를 변경할 수 있습니다. 설명, 유효한 값 및 기본값을 포함하여 LightGBM 하이퍼파라미터에 대한 자세한 내용은 다음 표를 참조하세요.

파라미터 이름 설명
num_boost_round

최대 부스팅 반복 횟수. 참고: 내부적으로 LightGBM는 다중 클래스 분류 문제에 대한 num_class * num_boost_round 트리를 구성합니다.

유횻값: 정수, 범위: 양의 정수.

기본값: 100.

early_stopping_rounds

마지막 early_stopping_rounds 라운드에서 한 검증 데이터 요소 중 하나의 지표가 개선되지 않으면 훈련이 중지됩니다. early_stopping_rounds가 0보다 작거나 같으면 이 하이퍼파라미터는 무시됩니다.

유효한 값: 정수.

기본값: 10.

metric

검증 데이터에 대한 평가 지표. metric을 디폴트 "auto" 값으로 설정하면 알고리즘이 분류 문제의 유형에 따라 평가 지표를 자동으로 선택합니다.

  • 회귀에 대한 rmse

  • 바이너리 분류에 대한 binary_logloss

  • 멀티클래스 분류에 대한 multi_logloss

유효한 값: 문자열, 다음 중 하나: ("auto", "rmse", "l1", "l2", "huber", "fair", "binary_logloss", "binary_error", "auc", "average_precision", "multi_logloss", "multi_error", "auc_mu" 또는 "cross_entropy").

기본값: "auto".

learning_rate

각 훈련 예제 배치를 살펴본 후 모델 가중치가 업데이트되는 비율입니다.

유효한 값: 부동 소수점, 범위: (0.0, 1.0).

기본값: 0.1.

num_leaves

한 나무의 최대 잎 수입니다.

유효한 값: 정수, 범위: (1, 131072).

기본값: 64.

feature_fraction

각 반복(트리)에서 선택할 기능의 하위 집합. 1.0 미만이어야 합니다.

유효한 값: 부동 소수점, 범위: (0.0, 1.0).

기본값: 0.9.

bagging_fraction

feature_fraction과 유사한 기능의 하위 집합이지만 bagging_fraction은 리샘플링 없이 데이터의 일부를 무작위로 선택합니다.

유효한 값: 부동 소수점, 범위: (0.0, 1.0].

기본값: 0.9.

bagging_freq

배깅을 수행하는 빈도. 매번 bagging_freq 반복할 때마다 LightGBM는 다음 bagging_freq 반복에 사용할 데이터의 백분율을 무작위로 선택합니다. 이 비율은 bagging_fraction 하이퍼파라미터에 의해 결정됩니다. bagging_freq이 0이면 배깅이 비활성화됩니다.

유효한 값: 정수, 범위: 음수가 아닌 정수.

기본값: 1.

max_depth

나무 모델의 최대 깊이입니다. 이는 데이터 양이 적을 때 오버피팅을 처리하는 데 사용됩니다. max_depth가 0보다 작거나 같으면 최대 깊이에 제한이 없습니다.

유효한 값: 정수.

기본값: 6.

min_data_in_leaf

한 리프에 있는 최소 데이터 양. 오버피팅을 처리하는 데 사용할 수 있습니다.

유효한 값: 정수, 범위: 음수가 아닌 정수.

기본값: 3.

max_delta_step

나무 잎의 최대 생산량을 제한하는 데 사용됩니다. max_delta_step이 0보다 작거나 같으면 제약 조건이 없습니다. 나뭇잎의 최종 최대 출력은 learning_rate * max_delta_step입니다.

유효한 값: 부동 소수점.

기본값: 0.0.

lambda_l1

L1 정규화.

유효한 값: 부동 소수점, 범위: 음수가 아닌 부동 소수점.

기본값: 0.0.

lambda_l2

L2 정규화.

유효한 값: 부동 소수점, 범위: 음수가 아닌 부동 소수점.

기본값: 0.0.

boosting

부스팅 타입

유효한 값: 문자열, 다음 중 하나: ("gbdt", "rf", "dart" 또는 "goss").

기본값: "gbdt".

min_gain_to_split

스플릿을 수행하는 데 필요한 최소 게인. 훈련 속도를 높이는 데 사용할 수 있습니다.

유효한 값: 정수, 부동 소수점: 음수가 아닌 부동 소수점.

기본값: 0.0.

scale_pos_weight

포지티브 클래스가 있는 레이블의 가중치. 바이너리 분류 작업에만 사용됩니다. is_unbalance"True"로 설정된 경우 scale_pos_weight를 사용할 수 없습니다.

유효한 값: 부동 소수점, 범위: 양의 부동 소수점.

기본값: 1.0.

tree_learner

트리 훈련자 유형.

유효한 값: 문자열, 다음 중 하나: ("serial", "feature", "data" 또는 "voting").

기본값: "serial".

feature_fraction_bynode

각 트리 노드에서 무작위 기능의 하위 집합을 선택합니다. 예를 들어 feature_fraction_bynode0.8인 경우 기능의 80% 가 선택됩니다. 오버피팅을 처리하는 데 사용할 수 있습니다.

유효한 값: 정수, 범위: (0.0, 1.0].

기본값: 1.0.

is_unbalance

훈련 데이터가 불균형한 경우 "True"로 설정합니다. 바이너리 분류 작업에만 사용됩니다. is_unbalancescale_pos_weight와 함께 사용할 수 없습니다.

유효한 값: 문자열, 다음 중 하나: ("True" 또는 "False").

기본값: "False".

max_bin

기능 값을 버킷화하는 데 사용되는 최대 빈 수입니다. 빈 수가 적으면 훈련 정확도가 떨어질 수 있지만 전반적인 성능은 향상될 수 있습니다. 오버피팅을 처리하는 데 사용할 수 있습니다.

유효한 값: 정수, 범위: (1, ∞)

기본값: 255.

tweedie_variance_power

Tweedie 분포의 분산을 제어합니다. 감마 분포로 전환하려면 이 값을 2.0에 더 가깝게 설정하세요 푸아송 분포로 전환하려면 이 값을 1.0에 더 가깝게 설정하세요 회귀 작업에만 사용됩니다.

유효한 값: 부동 소수점, 범위: [1.0, 2.0).

기본값: 1.5.

num_threads

Light 를 실행하는 데 사용되는 병렬 스레드 수입니다GBM. 값 0은 OpenMP의 기본 스레드 수를 의미합니다.

유효한 값: 정수, 범위: 음수가 아닌 정수.

기본값: 0.

verbosity

인쇄 메시지의 장황함. verbosity0보다 작으면 인쇄 메시지에는 치명적 오류만 표시됩니다. verbosity0으로 설정하면 인쇄 메시지에 오류 및 경고가 포함됩니다. verbosity1로 설정된 경우 인쇄 메시지에 추가 정보가 표시됩니다. 1보다 큰 verbosity는 인쇄 메시지에서 가장 많은 정보를 나타내며 디버깅에 사용할 수 있습니다.

유효한 값: 정수.

기본값: 1.