업계 뉴스레터
전문가가 전하는 최신 AI 트렌드
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
XGBoost(eXtreme Gradient Boosting)는 경사 하강법을 활용하는 지도 학습 부스팅 알고리즘인 그레이디언트 부스트 의사결정트리를 사용하는 분산형 오픈 소스 머신 러닝 라이브러리입니다. 속도, 효율성, 대규모 데이터 세트에 대한 확장성이 뛰어난 것으로 잘 알려져 있습니다.
워싱턴 대학교의 티안치 첸(Tianqi Chen)이 개발한 XGBoost는 동일한 일반 프레임워크를 사용하여 그레이디언트 부스팅을 고급으로 구현한 것입니다. 즉, 잔차를 더하여 약한 학습기 트리를 강한 학습기로 결합합니다. 이 라이브러리는 C++, Python, R, Java, Scala 및 Julia에서 사용할 수 있습니다.1
의사결정트리는 머신 러닝에서 분류 또는 회귀 작업에 사용됩니다. 내부 노드는 특징을, 분기는 의사 결정 규칙을, 각 리프 노드는 데이터 세트의 결과를 나타내는 계층적 트리 구조를 사용합니다.
Decision Trees는 과적합되기 쉽기 때문에 부스팅과 같은 앙상블 방법을 사용하여 더 견고한 모델을 만들 수 있습니다. 부스팅은 여러 개의 개별 약한 트리, 즉 무작위 확률보다 약간 더 나은 성능을 보이는 모델을 결합하여 강한 학습기를 형성합니다. 각 약한 학습기는 이전 모델에서 발생한 오류를 수정하기 위해 순차적으로 학습합니다. 수백 번의 반복 후 약한 학습기는 강한 학습기로 변환됩니다.
랜덤 포레스트와 부스팅 알고리즘은 모두 개별 학습기 트리를 사용하여 예측 성능을 향상하는 인기 있는 앙상블 학습 기법입니다. 랜덤 포레스트는 배깅(부트스트랩 집계) 개념을 기반으로 하며 각 트리를 독립적으로 학습시켜 예측을 결합하지만, 부스팅 알고리즘은 약한 학습기가 순차적으로 학습되어 이전 모델의 실수를 수정하는 가산적 접근 방식을 사용합니다.
그레이디언트 부스트 의사결정트리는 경사 하강법을 활용하는 부스팅 알고리즘의 한 유형입니다. 다른 부스팅 방법론과 마찬가지로 그레이디언트 부스팅은 약한 학습기로 예측을 시작합니다. 그레이디언트 부스팅의 첫 번째 Decision Trees를 기본 학습기라고 합니다. 그다음, 기본 학습기의 실수를 기반으로 새로운 트리가 추가 방식으로 생성됩니다. 그런 다음 알고리즘은 각 트리의 예측에 대한 잔차를 계산하여 모델의 예측이 실제와 얼마나 차이가 나는지 확인합니다. 잔차는 모델의 예측값과 실제 값의 차이입니다. 그런 다음 잔차를 집계하여 손실 함수를 사용하여 모델에 점수를 매깁니다.
머신 러닝에서 손실 함수는 모델의 성능을 측정하는 데 사용됩니다. 그레이디언트 부스트 의사결정트리의 그레이디언트는 경사하강법을 의미합니다. 경사 하강법은 새 모델을 학습할 때 손실을 최소화하는 데(즉, 모델의 성능을 향상하는 데) 사용됩니다. 경사 하강법은 머신 러닝 문제에서 손실 함수를 최소화하는 데 널리 사용되는 최적화 알고리즘입니다. 손실 함수의 예로는 회귀 문제에 대한 평균 제곱 오차 또는 평균 절대 오차, 분류 문제에 대한 교차 엔트로피 손실 또는 특정 사용 사례 및 데이터 세트에 대한 사용자 지정 손실 함수가 있습니다.
다음은 Python에서 XGBoost의 몇 가지 기능에 대해 설명하며, 이는 사이킷런(scikit-learn)의 일반 그레이디언트 부스팅 패키지와 비교하여 눈에 띄는 점입니다.2
업계 뉴스레터
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
이 섹션에서는 XGBoost 패키지 사용 방법, XGBoost 트리 부스터의 초매개변수 선택 방법, XGBoost를 다른 부스팅 구현과 비교하는 방법 및 일부 사용 사례에 대해 설명합니다.
데이터에 대한 탐색적 데이터 분석을 이미 수행했다고 가정하고, 학습 데이터 세트와 테스트 데이터 세트 간에 데이터를 계속 나눕니다. 그런 다음, 데이터를 XGBoost가 예상하는 DMatrix 형식으로 변환합니다3. DMatrix는 메모리 효율성과 학습 속도에 최적화된 XGBoost의 내부 데이터 구조입니다4.
그런 다음 XGBoost 모델을 인스턴스화하고 사용 사례에 따라 'object' 초매개변수를 통해 사용할 목적 함수를 선택합니다. 예를 들어 다중 클래스 분류 작업이 있는 경우 목적을 "multi:softmax"로 설정해야 합니다5. 또는 이진 분류 문제가 있는 경우 로지스틱 회귀 목적 "binary:logistic"을 사용할 수 있습니다. 이제 학습 집합을 사용하여 모델을 학습시키고 테스트 세트와 별도로 데이터 세트에 대한 분류를 예측할 수 있습니다. 예측된 값과 테스트 세트의 실제 값을 비교하여 모델의 성능을 평가합니다. 정확도, 정밀도, 재현률 또는 f-1 점수와 같은 메트릭을 사용하여 모델을 평가할 수 있습니다. 혼동 행렬을 사용하여 참 양성, 참 음성, 거짓 양성 및 거짓 음성을 시각화할 수도 있습니다.
다음으로 하이퍼매개변수 조합을 반복하여 모델의 성능을 향상할 수 있습니다. 하이퍼매개변수 튜닝은 머신 러닝 알고리즘의 하이퍼매개변수를 최적화하는 프로세스입니다. 최상의 하이퍼매개변수는 그리드 검색 및 교차 검증 방법을 사용하여 찾을 수 있으며, 이는 가능한 하이퍼매개변수 조정의 사전을 통해 반복합니다.
다음은 XGBoost에서 그레이디언트 부스트 트리를 조정하는 데 사용할 수 있는 일부 초매개변수에 대한 설명입니다.
XGBoost는 사용 가능한 많은 오픈 소스 부스팅 알고리즘 중 하나입니다. 이 섹션에서는 XGBoost를 세 가지 다른 부스팅 프레임워크와 비교해 보겠습니다.
AdaBoost는 1995년 요아브 프룬드(Yoav Freund)와 로버트 샤파이어(Robert Schapire)가 발명한 초기 부스팅 알고리즘입니다7. AdaBoost에서는 예측하기 어려운 데이터 포인트에 더 큰 영향을 미치는 가중치 시스템을 통해 잘못된 예측에 더 중점을 둡니다. 먼저 데이터 세트의 각 데이터 포인트에 특정 가중치가 할당됩니다. 약한 학습기가 예제를 정확하게 예측하면 예제의 가중치가 감소합니다. 그러나 학습기가 예제를 잘못 예측하면 해당 데이터 포인트에 대한 가중치가 증가합니다. 새 트리가 생성되면 해당 가중치는 이전 학습기 트리의 오분류를 기반으로 합니다. 학습기 수가 증가함에 따라 예측하기 쉬운 샘플은 향후 학습기에 덜 사용되고, 예측하기 어려운 데이터 포인트는 더 두드러지게 가중치가 부여됩니다. 그레이디언트 부스팅과 XGBoost는 정확도와 속도 측면에서 AdaBoost보다 더 강력한 대안으로 여겨집니다.
CatBoost는 또 다른 그레이디언트 부스팅 프레임워크입니다. 2017년 Yandex에서 개발했으며, 전처리 없이 범주형 기능을 처리하는 데 특화되어 있고 일반적으로 광범위한 초매개변수 튜닝을 수행할 필요 없이 바로 사용할 수 있습니다.8 XGBoost와 마찬가지로 CatBoost는 누락된 데이터를 처리하기 위한 지원 기능이 내장되어 있습니다. CatBoost는 범주형 기능이 많은 데이터 세트에 특히 유용합니다. Yandex에 따르면, 해당 프레임워크는 검색, 추천 시스템, 개인 어시스턴트, 자율 주행 자동차, 날씨 예측 및 기타 작업에 사용됩니다.
마지막으로 검토할 그레이디언트 부스팅 알고리즘은 LightGBM(Light Gradient Boosting Machine)입니다. Microsoft에서 개발했으며 2016년에 처음 출시되었습니다.9 대부분의 Decision Trees 학습 알고리즘은 깊이 단위로 트리를 성장시키지만, LightGBM은 리프 단위의 트리 성장 전략을 사용합니다10. XGBoost와 마찬가지로 LightGBM은 빠른 모델 학습 속도와 정확도를 보이며 대규모 데이터 세트에서 뛰어난 성능을 발휘합니다.
XGBoost 및 그레이디언트 부스트 Decision Trees는 다음을 포함한 다양한 데이터 과학 애플리케이션에서 사용됩니다.
AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.