트리 기반 Gradient Boosting 방식 알고리즘이 모델 성능의 우수성은 인정되지만 학습 시간이 너무 오래 걸림
학습 시간이 오래걸리면 여러가지 방법을 쓰는 것에 제한이 있음, 캐글같은 데이터경진대회에서 베이스라인으로 많이 쓰임.
Best split gain을 찾기 위해 모든 leaf node의 데이터들을 대상으로 해야함. 오랜 수행 시간 필요
-> lightGBM : 연속형 feature들을 특정한 개수의 bin으로 할당하여 개별 피처들의 범위를 급격히 줄임!
LightGBM : leaf-wise 방식이므로 조절해주지 않으면 depth가 끝없이 깊어져서 오버피팅에 취약해짐.
가장 중요한 파라미터
max_depth
: 최대 depth
num_leaves
: leaf node의 개수
num_iterations(n_estimators)
: 약한 학습기의 개수
learning_rate
: 학습률
과적합 제어
bagging_fraction(subsample)
: 데이터를 샘플링하는 비율(행)
feature_fraction(colsample_bytree)
: 트리 생성에 사용하는 피처(열)
lambda_l2
: L2 Regularization
lambda_l1
: L1 Regularization
max_bin
: 연속형 변수들 binning할 때 최대 bin의 개수
너무 많은 하이퍼 파라미터
gridsearch : 개별 하이퍼 파라미터들을 grid 형태로 지정하는 것은 한계가 존재(데이터가 크면 답이 없다).
미지의 함수가 반환하는 값의 최대값을 매우 짧은 반복을 통해 찾아내는 최적화 방식!
Gaussian Process를 통해 함수의 사후 분포를 생성하고, 이를 기반으로 최적화하려는 함수를 재구성
점차 많은 입력 값을 받아서 수행하면서 사후 분포가 점점 개선되고, 함수 반환 값을 최대되는 입력 파라미터 영역을 보다 확실하게 찾게 됨.
함수 입력 인자의 범위를 설정 & 함수 선언
함수를 잘 선언하는 것이 중요(loss function이 return 값)
AutoML !