머신 러닝의 부스트: 기능, 유형 및 특징
게시 됨: 2020-05-29머신 러닝의 부스팅은 중요한 주제입니다. 많은 분석가들이 이 용어의 의미에 대해 혼란스러워합니다. 그렇기 때문에 이 기사에서 머신 러닝 부스팅의 의미와 작동 방식을 알아보겠습니다. 부스팅은 ML 모델이 예측 정확도를 개선하는 데 도움이 됩니다. 이 알고리즘에 대해 자세히 논의해 보겠습니다.
목차
기계 학습에서 부스팅이란 무엇입니까?
' 머신 러닝 부스팅 '에 대해 논의하기 전에 먼저 이 용어의 정의를 고려해야 합니다. Boosting은 '어떤 것을 개선하도록 격려하거나 도움을 주는 것'을 의미합니다. 머신 러닝 부스팅은 머신 러닝 모델을 강화하고 정확도를 향상시키는 것과 똑같은 일을 합니다. 이러한 이유로 데이터 과학에서 널리 사용되는 알고리즘입니다.
ML에서 부스팅은 약한 학습 모델을 강력한 모델로 변환하는 알고리즘을 나타냅니다. 이메일을 '스팸' 및 '스팸 아님' 범주로 분류해야 한다고 가정합니다. 이러한 구분을 위해 다음과 같은 접근 방식을 취할 수 있습니다.
- 이메일에 하나의 이미지 파일만 있으면 스팸입니다(이미지는 일반적으로 홍보용이므로).
- 이메일에 '복권에 당첨되었습니다'와 같은 문구가 포함되어 있으면 스팸입니다.
- 이메일에 많은 링크만 포함되어 있으면 스팸입니다.
- 이메일이 연락처 목록에 있는 출처에서 온 것이라면 스팸이 아닙니다.
이제 분류 규칙이 있지만 이메일이 스팸인지 아닌지를 개별적으로 식별할 수 있을 만큼 강력하다고 생각하십니까? 그들은 그렇지 않습니다. 개별적으로 이러한 규칙은 약하며 '스팸 아님' 또는 '스팸'으로 이메일을 분류하기에 충분하지 않습니다. 우리는 그들을 더 강하게 만들 필요가 있을 것이고, 우리는 가중 평균을 사용하거나 더 높은 투표율의 예측을 고려하여 그렇게 할 수 있습니다.
따라서 이 경우에는 5개의 분류자가 있으며 그 중 3개의 분류자는 이메일을 '스팸'으로 표시하므로 이 클래스는 '스팸 아님'보다 투표율이 높으므로 기본적으로 이메일 '스팸'으로 간주합니다. 범주.
이 예는 부스팅 알고리즘이 무엇인지에 대한 아이디어를 제공하기 위한 것입니다. 그것들은 이것보다 더 복잡합니다.

살펴보기: 25가지 기계 학습 인터뷰 질문 및 답변
그들은 어떻게 작동합니까?
위의 예는 부스팅이 약한 학습자를 결합하여 엄격한 규칙을 형성한다는 것을 보여주었습니다. 그렇다면 이러한 약한 규칙을 어떻게 식별할 수 있을까요? 불확실한 규칙을 찾으려면 인스턴스 기반 학습 알고리즘을 사용해야 합니다. 기본 학습 알고리즘을 적용할 때마다 약한 예측 규칙이 생성됩니다. 여러 반복에 대해 이 프로세스를 반복하고 각 반복에서 부스팅 알고리즘은 약한 규칙을 결합하여 강력한 규칙을 형성합니다.
부스팅 알고리즘은 여러 단계를 거쳐 모든 반복에 대해 올바른 분포를 선택합니다. 먼저 다양한 할당을 모두 가져와 동일한 가중치를 할당합니다. 첫 번째 기본 학습 알고리즘이 오류를 범하면 해당 관찰에 더 많은 가중치가 추가됩니다. 가중치를 부여한 후 다음 단계로 넘어갑니다.
이 단계에서는 알고리즘의 정확도를 높일 때까지 프로세스를 계속 반복합니다. 그런 다음 약한 학습자의 출력을 결합하고 모델에 권한을 부여하고 더 나은 예측을 만드는 데 도움이 되는 강력한 학습자를 만듭니다. 부스팅 알고리즘은 약한 규칙으로 인해 높은 오류를 유발하는 가정에 더 중점을 둡니다.
자세히 알아보기: 기계 학습의 5가지 획기적인 응용 프로그램
다양한 종류의 부스팅 알고리즘
부스팅 알고리즘은 마진 최대화, 결정 스탬프 등을 포함한 다양한 종류의 기본 엔진을 사용할 수 있습니다. 기본적으로 기계 학습 부스팅 알고리즘에는 세 가지 유형이 있습니다.
- 적응 부스팅(AdaBoosta라고도 함)
- 그라디언트 부스팅
- XGBoost
우리는 이 기사에서 처음 두 가지인 AdaBoost와 Gradient Boosting에 대해 간략하게 논의할 것입니다. XGBoost는 훨씬 더 복잡한 주제이며, 이에 대해서는 다른 기사에서 논의할 것입니다.
1. 적응 부스팅
5개의 플러스와 5개의 마이너스가 있는 상자가 있다고 가정합니다. 당신의 임무는 그것들을 분류하고 다른 테이블에 넣는 것입니다.
첫 번째 반복에서는 모든 데이터 요소에 동일한 가중치를 할당하고 상자에 결정 스텀프를 적용합니다. 그러나 라인은 그룹에서 두 개의 플러스만 분리하고 나머지는 함께 유지됩니다. 결정 스텀프(가정 상자를 통과하는 선)는 모든 데이터 포인트를 올바르게 예측하지 못하고 마이너스와 함께 세 개의 플러스를 배치했습니다.

다음 반복에서는 이전에 놓친 세 가지 플러스에 더 많은 가중치를 할당합니다. 그러나 이번에는 결정 스텀프가 그룹에서 단 2분을 분리합니다. 이 반복에서 놓친 마이너스에 더 많은 가중치를 할당하고 프로세스를 반복합니다. 한두 번 반복한 후 이러한 결과 중 몇 개를 결합하여 하나의 엄격한 예측 규칙을 생성할 수 있습니다.
AdaBoost는 이렇게 작동합니다. 먼저 원본 데이터를 사용하여 예측하고 모든 점에 동일한 가중치를 할당합니다. 그런 다음 첫 번째 학습자가 올바르게 예측하지 못한 관찰에 더 높은 중요성을 부여합니다. 모델 정확도의 한계에 도달할 때까지 프로세스를 반복합니다.
Adaboost와 함께 결정 스탬프 및 기타 기계 학습 알고리즘을 사용할 수 있습니다.
다음은 Python의 AdaBoost의 예입니다.
sklearn.ensemble에서 AdaBoostClassifier 가져오기
sklearn.datasets에서 make_classification 가져오기
X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,
n_redundant=0, n_repeated=0, random_state=102)
clf = AdaBoostClassifier(n_estimators=4, random_state=0, algorithm='SAMME')
clf.fit(X, Y)
2. 그라디언트 부스팅
Gradient Boosting은 Gradient descent 방법 을 사용하여 전체 작업의 손실 함수를 줄입니다. 기울기 하강법은 함수(미분 가능 함수)의 국소 최솟값을 찾는 1차 최적화 알고리즘입니다. 그라디언트 부스팅은 여러 모델을 순차적으로 훈련하고 새로운 모델에 맞춰 응답을 더 잘 추정할 수 있습니다.
손실 함수의 음의 기울기와 상관 관계가 있고 전체 시스템에 연결된 새로운 기본 학습기를 구축합니다. Python에서는 Gradient Tree Boosting(GBRT라고도 함)을 사용해야 합니다. 분류 및 회귀 문제에 사용할 수 있습니다.
다음은 Python에서 Gradient Tree Boosting의 예입니다.
sklearn.ensemble에서 GradientBoostingRegressor 가져오기
모델 = GradientBoostingRegressor(n_estimators=3,learning_rate=1)
model.fit(X,Y)
# 분류용
sklearn.ensemble에서 GradientBoostingClassifier 가져오기
모델 = GradientBoostingClassifier()

model.fit(X,Y)
기계 학습에서 부스팅의 기능
부스팅은 많은 이점을 제공하며 다른 알고리즘과 마찬가지로 제한 사항도 있습니다.
- 부스팅의 예측을 해석하는 것은 앙상블 모델이기 때문에 매우 자연스럽습니다.
- 이 알고리즘의 또 다른 장점인 암시적으로 기능을 선택합니다.
- 부스팅 알고리즘의 예측 능력은 결정 트리 및 배깅보다 더 안정적입니다.
- 부스팅의 모든 추정기는 이전 추정기를 기반으로 하기 때문에 확장하는 것은 다소 까다롭습니다.
더 읽어보기: 초보자를 위한 머신 러닝 프로젝트 아이디어
여기에서 어디로 가야합니까?
부스팅에 대한 이 기사가 유용했기를 바랍니다. 먼저 이 알고리즘이 무엇이며 어떻게 머신 러닝 문제를 해결하는지 논의했습니다. 그런 다음 작동 방식과 작동 방식을 살펴보았습니다.
우리는 또한 다양한 유형에 대해 논의했습니다. AdaBoost와 Gradient Boosting의 사례도 공유하면서 알게 되었습니다. 기계 학습에 대해 자세히 알아보려면 IIIT-B 및 upGrad의 기계 학습 및 AI PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT- B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
기계 학습의 부스팅을 간단히 정의하려면 어떻게 해야 합니까?
기계에서 부스팅은 학습의 약한 모델을 강력한 모델로 변환하는 데 도움이 되는 알고리즘을 참조하는 것으로 구성됩니다. 이메일을 스팸이 아닌 스팸으로 분류하는 예를 보면 이해를 돕기 위해 사용할 수 있는 특정 구분이 있습니다. 이러한 구분은 이메일에 단일 파일이 있고 You have the lottery와 같은 유사한 문구가 포함되어 있고 많은 링크가 포함되어 있고 연락처 목록에서 가져온 경우 접근할 수 있습니다.
부스팅 알고리즘은 어떻게 작동합니까?
약한 규칙은 인스턴스 기반 학습 알고리즘을 사용하여 식별됩니다. 기본 학습 알고리즘이 여러 번 반복되면 최종적으로 약한 규칙을 하나의 강력한 규칙으로 결합합니다. 부스팅 알고리즘은 여러 단계를 통해 모든 반복을 배포하기 위한 올바른 선택을 합니다. 할당을 받은 후 오류가 발생할 때까지 동일한 가중치를 할당하고 이후에는 더 많은 가중치를 할당합니다. 이 과정은 더 나은 정확도가 얻어질 때까지 반복됩니다. 그런 다음 모든 약한 출력을 결합하여 강한 출력을 만듭니다.
다양한 종류의 부스팅 알고리즘과 그 기능은 무엇입니까?
다른 유형은 적응 부스팅, 그래디언트 부스팅 및 XGBoost입니다. 부스팅은 암묵적으로 기능을 선택하는 것과 같은 특성을 가지고 있습니다. 의사결정나무는 예측력보다 신뢰성이 떨어집니다. 또한 estimators가 이전 estimator를 기반으로 하기 때문에 scaling이 더 어렵습니다. 그리고 부스트 예측을 해석하는 것은 앙상블 모델이기 때문에 자연스럽습니다.