본문 바로가기
Computer Science/기계학습

[Classification 2] 3. Classification algorithms - Random Forest, Ensemble approach(1)

by 큌 2024. 4. 21.
반응형

Content

  • Introduction to supervised learning approach
  • Data split in supervised learning
  • Classification algorithms
    • KNN & distance measures
    • Decision tree
    • Random Forest, Ensemble approach
    • SVM

3. Classification algorithms - Random Forest, Ensemble approach

3.1 Problem with a single best model

  • 이전에 논의된 결정 트리는 높은 변동성(variance)을 가지고 있다는 문제가 있습니다.
  • 만약 우리가 훈련 데이터를 무작위로 2부분으로 나누고, 각 부분에 대해 결정 트리를 적용한다면, 결과는 상당히 다를 수 있습니다. 우리는 변동성이 낮으면서도 편향(bias)도 낮은 모델을 원합니다.
  • 이 문제를 해결하기 위해, 우리는 앙상블 방법을 사용할 수 있습니다. 앙상블 방법은 여러 개의 모델을 조합하여 하나의 예측 모델을 만드는 방식입니다.
  • 이 방법은 개별 모델의 약점을 보완하고 강점을 결합함으로써 전체적으로 더 안정적이고 정확한 예측을 가능하게 합니다. 앙상블 방법에는 랜덤 포레스트, 부스팅, 배깅 등 여러 가지가 있습니다. 예를 들어, 랜덤 포레스트는 여러 개의 결정 트리를 조합하여 사용함으로써 개별 결정 트리가 가지는 높은 변동성 문제를 줄이고, 전체 모델의 예측 성능을 향상시킵니다.

3.2 General ensemble approach

  • 일반 앙상블 접근 방식은 여러 학습 알고리즘을 사용하여 각각의 학습 알고리즘만으로 얻을 수 있는 것보다 더 나은 예측 성능을 얻는 방법입니다.
  • 이 접근 방식에서는 다음과 같이 시작합니다: (m)개의 분류기로 시작합니다.
  • 다양한 알고리즘으로 구축할 수 있습니다.
  • 예를 들어, 의사 결정 트리, SVM(서포트 벡터 머신) 등이 있습니다. 또는 같은 기본 알고리즘을 사용하지만, 훈련 데이터의 다른 부분 집합에 적합하게 합니다.
  • 예를 들어, 랜덤 포레스트가 이에 해당합니다. 앙상블 방법은 여러 모델의 예측을 결합함으로써 단일 모델보다 더 강력하고 안정적인 예측을 제공합니다.
  • 이러한 방식으로, 모델의 다양성이 예측 성능 향상에 기여할 수 있습니다.
  • 분류기들이 서로 보완적인 정보를 제공하거나, 서로 다른 방식으로 데이터의 다양한 측면을 학습하기 때문에 전체적으로 더 포괄적이고 정확한 예측이 가능해집니다. 앙상블 학습의 대표적인 예로는 랜덤 포레스트, 부스팅, 배깅 등이 있으며, 이러한 방법들은 실제 세계의 다양한 머신러닝 문제에서 널리 사용되고 있습니다.

3.3 Ensemble of different algorithms

3.4 Making predictions

  • 예측을 결합하는 데에는 주로 두 가지 접근 방식이 있습니다:
  • 다수결 투표(단순 투표): 각 분류기의 예측 중 가장 많이 나타나는 결과를 최종 예측으로 제공합니다. 이 방식은 각 분류기가 독립적으로 투표하여 가장 많은 표를 얻은 클래스를 최종 예측 결과로 선택합니다. 소프트 투표: 각 분류기가 클래스의 확률 추정치를 제공할 경우, 이 확률들을 평균내어 가장 높은 확률을 가진 클래스를 최종 예측으로 선택합니다. 이 방식은 각 분류기의 확신도를 반영하여 보다 민감하게 최종 결과를 도출할 수 있습니다. 두 방법 모두 잘 작동하며, 상황에 따라 적절한 방법을 선택할 수 있습니다. 단순 투표 방식은 각 분류기의 예측 결과만을 고려하기 때문에 구현이 간단하고 직관적입니다. 반면, 소프트 투표 방식은 분류기가 제공하는 확률 정보를 활용하여 보다 세밀한 예측이 가능하다는 장점이 있습니다. 이러한 방식들은 앙상블 학습에서 중요한 역할을 하며, 다양한 분류 문제에 적용되어 성능 향상을 도모합니다.

3.5 Soft voting

  • Soft voting 방식을 예시와 함께 설명해보겠습니다.
  • 이 방식은 분류기들이 각 클래스에 대한 확률을 반환할 때 사용됩니다. 예를 들어, 이진 분류 문제(클래스 0 또는 1)에서 세 개의 분류기(C1, C2, C3)가 있다고 가정해봅시다. 단순 다수결 방식(Hard voting)에서는 C1과 C2가 클래스 0을 예측하고, C3가 클래스 1을 예측합니다. 이 경우, 가장 많이 예측된 클래스를 최종 예측값으로 선택합니다. 결론적으로 ypred = mode{0,0,1} = 0이 됩니다. 반면 Soft voting에서는 각 분류기가 제공하는 확률을 평균내어 최종 예측을 결정합니다. 각 분류기가 클래스 0과 1에 대해 반환한 확률이 다음과 같다고 가정해봅시다: 클래스 0에 대한 확률: C1 = 0.6, C2 = 0.7, C3 = 0.1 클래스 1에 대한 확률: C1 = 0.4, C2 = 0.3, C3 = 0.9 이때, 클래스 0과 1에 대한 평균 확률은 다음과 같습니다: 클래스 0의 평균 확률 = (0.6 + 0.7 + 0.1) / 3 = 0.47 클래스 1의 평균 확률 = (0.4 + 0.3 + 0.9) / 3 = 0.53 따라서, 두 클래스 중 더 높은 평균 확률을 가진 클래스 1을 최종 예측값으로 선택하게 됩니다. 즉, ypred = 1입니다. Soft voting 방식은 각 분류기의 확률을 고려하여 더 민감하고 세밀한 결정을 내릴 수 있으며, 이는 특히 분류기들 사이의 의견이 분분할 때 유용합니다.

3.6 Example: Hard voting vs. soft voting

3.7 Combining classifiers with weights

3.8 Voting classifiers

  • Voting classifiers는 여러 개의 분류기(classifiers)를 결합하여 사용하는 앙상블 학습 방법 중 하나입니다.
  • 이 방식은 앙상블에 포함된 각각의 분류기들이 서로 독립적인 경우, 즉 각 분류기가 다른 분류기와는 독립적으로 데이터로부터 학습되고 예측한다면, 개별 분류기들보다 더 정확한 예측을 가능하게 합니다. 분류기들 사이의 독립성은 앙상블의 다양성을 증가시키고, 이는 오버피팅(과적합)을 줄이며, 일반화 성능을 향상시키는 데 도움이 됩니다. 예를 들어, 서로 다른 알고리즘으로 구성된 분류기들을 사용하거나, 같은 알고리즘을 사용하더라도 서로 다른 데이터 셋을 사용하여 학습시키는 등의 방법으로 독립성을 확보할 수 있습니다. 그러나, 이러한 분류기들 사이의 독립성이 보장되지 않는 경우, 예를 들어 모든 분류기가 동일한 유형의 오류를 범하거나, 데이터의 특정 부분에 과도하게 의존하는 경우, 앙상블의 성능은 오히려 더 낮아질 수 있습니다.
  • 이는 분류기들이 서로 상관관계를 가지며, 이로 인해 오류가 상쇄되기보다는 증폭될 수 있기 때문입니다.
  • 따라서, voting classifiers를 효과적으로 사용하기 위해서는 앙상블에 포함된 분류기들 사이의 독립성을 최대한 확보하는 것이 중요합니다.
  • 이를 통해 각 분류기의 장점을 취합하고, 약점을 상호 보완함으로써, 전체적인 예측 성능을 향상시킬 수 있습니다.

3.9 Ensemble from the same algorithm

  • 동일한 알고리즘을 사용하는 앙상블 모델을 구성하려면, B개의 다른 부트스트랩(bootstrap) 훈련 데이터셋을 생성해야 합니다. 부트스트랩은 원본 데이터셋에서 중복을 허용하여 무작위로 샘플을 선택하는 방법으로, 각기 다른 훈련 데이터셋을 생성합니다.
  • 다른 훈련 데이터셋 구성 방법은 다음과 같습니다: 데이터셋 준비: 원본 데이터셋을 준비합니다.
  • 부트스트랩 샘플링: 원본 데이터셋에서 중복을 허용하여 무작위로 샘플을 추출해, 새로운 훈련 데이터셋을 생성합니다.
  • 이 과정을 B번 반복하여 B개의 부트스트랩 훈련 데이터셋을 생성합니다. 모델 훈련: 각 부트스트랩 훈련 데이터셋에 대해 동일한 학습 알고리즘을 사용하여 모델을 훈련시킵니다.
  • 이렇게 하면 각 데이터셋의 특성을 반영한 다양한 모델이 생성됩니다.
  • 예측 및 앙상블: 모든 훈련된 모델로부터 예측을 수집하고, 이러한 예측을 종합하여 최종 예측을 결정합니다.
  • 예를 들어, 회귀 문제의 경우 평균 예측값을 사용하고, 분류 문제의 경우 다수결(voting) 방식을 사용할 수 있습니다.
  • 이런 방식으로, 동일한 학습 알고리즘을 사용하더라도 부트스트랩 방식을 통해 생성된 다양한 훈련 데이터셋에 모델을 학습시킴으로써, 모델 간의 다양성을 확보하고 전체 앙상블 모델의 성능을 향상시킬 수 있습니다.

3.10 Bootstrapping

  • 부트스트래핑은 원본 데이터셋에서 무작위로 샘플을 복원 추출하여 훈련 데이터셋을 재샘플링하는 방법입니다.
  • 이 과정을 통해 관측된 데이터셋과 동일한 크기의 여러 훈련 데이터셋을 생성할 수 있습니다. 부트스트래핑의 주요 단계는 다음과 같습니다: 원본 데이터셋 준비: 분석하고자 하는 원본 데이터셋을 준비합니다.
  • 복원 추출: 원본 데이터셋에서 복원 추출 방식으로 무작위로 샘플을 선택합니다.
  • 복원 추출이란 한 번 선택된 샘플을 다시 원본 데이터셋에 반환하여, 같은 샘플이 여러 번 선택될 수 있도록 하는 방식입니다.
  • 훈련 데이터셋 생성: 이 과정을 반복하여 원본 데이터셋과 동일한 크기의 새로운 훈련 데이터셋을 만듭니다.
  • 여러 데이터셋 생성: 위의 과정을 여러 번 반복하여 다수의 훈련 데이터셋을 생성합니다.
  • 부트스트래핑을 통해 생성된 다양한 훈련 데이터셋은 앙상블 학습이나 교차 검증 등 다양한 머신러닝 기법에 활용될 수 있으며, 이는 모델의 일반화 성능을 향상시키고 과적합을 방지하는 데 도움을 줍니다.
  • 또한, 부트스트래핑은 데이터의 분포를 가정하지 않기 때문에 다양한 유형의 데이터에 적용할 수 있는 유연한 방법입니다.

3.11 Bagging

  • Bagging, 줄임말로 Bootstrap Aggregating이라고도 불리며, 기계 학습 알고리즘의 안정성과 정확성을 향상시키기 위해 고안된 방법입니다.
  • Bagging은 분류 문제에서는 부트스트랩과 투표 방식을 결합하고, 회귀 문제에서는 부트스트랩과 평균화 방식을 결합하여 사용합니다.
  • Bagging의 주요 단계는 다음과 같습니다: 부트스트랩 샘플링: 원본 데이터 세트에서 임의로 샘플링하여 여러 개의 훈련 데이터 세트를 생성합니다.
  • 이때 샘플링은 복원 추출 방식으로 진행되어 하나의 샘플이 여러 데이터 세트에 중복해서 나타날 수 있습니다.
  • 개별 모델 학습: 생성된 각 훈련 데이터 세트에 대해 동일한 학습 알고리즘을 사용하여 개별 모델을 학습시킵니다.
  • 결합: 분류 문제의 경우, 학습된 모든 모델의 예측 결과를 투표 방식으로 결합하여 최종 예측 결과를 도출합니다. 각 모델의 예측 결과에 대한 다수결 원칙을 적용합니다.
  • 회귀 문제의 경우, 학습된 모든 모델의 예측 값을 평균하여 최종 예측 값을 계산합니다. Bagging의 주된 이점은 여러 다양한 훈련 데이터 세트에서 학습된 모델들을 결합함으로써, 개별 모델이 가질 수 있는 과적합의 위험을 줄이고, 전체 모델의 분산을 감소시켜 전체적인 예측 성능을 향상시키는 것입니다.
  • 따라서 Bagging은 특히 불안정한 모델에 유용하며, 예측의 안정성을 높이고자 할 때 자주 사용됩니다.

3.12 How does bagging work?

  • Bagging, 또는 Bootstrap Aggregating 방법은 다음과 같이 작동합니다:
  • 다양한 부트스트랩 훈련 데이터셋 생성: 원본 데이터셋에서 무작위로 샘플링하여 교체를 허용하는 방식으로 B개의 다른 부트스트랩 훈련 데이터셋을 생성합니다. 이 과정을 통해 각 데이터셋은 원본 데이터셋과 동일한 크기를 가지지만, 다른 샘플 조합을 포함합니다.
  • 각각의 훈련 데이터셋에 대한 학습: 생성된 각 부트스트랩 훈련 데이터셋에 대해 동일한 학습 알고리즘(예: 결정 트리)을 사용하여 모델을 훈련시킵니다.
  • 이렇게 하면 각 모델은 조금씩 다른 데이터를 기반으로 학습되어, 다양성을 확보할 수 있습니다. 예측을 위한 다수결 투표: 예측을 할 때는 훈련된 B개의 모델 모두에 대해 예측을 수행하고, 그 결과로 분류 문제의 경우 다수결 투표를 통해 최종 예측값을 결정합니다.
  • 즉, 가장 많이 예측된 클래스가 최종 예측 결과로 선택됩니다.
  • 회귀 문제의 경우에는 B개의 모델 예측값의 평균을 사용하여 최종 예측값을 결정합니다. Bagging 방법은 모델의 분산을 줄이고 과적합을 방지하여 모델의 안정성과 정확도를 향상시키는데 효과적입니다. 이 방법은 특히 단일 모델이 데이터의 특정 부분에 과도하게 적합되는 것을 방지하면서 여러 다양한 모델을 조합함으로써 전체 모델의 성능을 개선합니다.

3.13 Bagged decision trees

3.14 Random Forest

  • Random Forest는 Bagging 기법을 기반으로 하지만, Bagged decision trees와 몇 가지 중요한 차이점이 있습니다. Random Forest의 기본 아이디어는 같은 데이터로부터 여러 개의 Decision Tree를 만들고, 이들의 결과를 종합해 예측 성능을 높이는 것입니다.
  • 하지만, Random Forest는 각 Decision Tree를 만들 때의 접근 방식에서 차이를 보입니다. Random Forest의 특징: Feature의 무작위 선택:
  • Random Forest에서는 각 트리를 만들 때 전체 feature들 중에서 무작위로 m개의 feature들을 선택하여 그 feature들만을 사용해 학습시킵니다.
  • 이 때, m은 일반적으로 전체 feature 개수 p의 제곱근(√p)으로 설정됩니다. 이러한 방식은 각 트리가 다양한 feature 조합을 기반으로 학습되게 하여, 트리 간의 상관관계를 줄이고 모델의 다양성을 높입니다.
  • Bagging과의 결합: 각 트리를 학습시키기 위해 사용되는 데이터도 bootstrapping, 즉 복원 추출 방식으로 샘플링된 데이터셋입니다.
  • 이는 Bagging 방식과 동일하며, 이를 통해 다양한 데이터셋을 생성하여 각각에 대해 트리를 학습시킵니다.
  • 예측 성능 향상:
  • Random Forest는 각각의 트리에서 독립적으로 예측을 수행한 후, 분류 문제의 경우에는 다수결로 최종 결과를 결정하고, 회귀 문제의 경우에는 평균을 내어 최종 결과를 도출합니다.
  • Random Forest는 이러한 특징으로 인해 단일 Decision Tree에 비해 과적합(overfitting)을 효과적으로 방지하며, 안정적이고 높은 예측 성능을 제공합니다.
  • 또한, feature의 중요도를 평가할 수 있어 feature 선택에도 유용하게 사용됩니다.

3.15 Why a random sample of m predictors instead of all p predictors?

  • 모든 p 예측 변수 대신 m개의 예측 변수를 무작위로 선택하는 이유는 다음과 같습니다:
  • 강력한 예측 변수의 영향: 만약 매우 강력한 예측 변수가 있을 경우, Bagging을 사용한 트리 모음에서 대부분의 트리들이 첫 분할로 이 강력한 예측 변수를 사용하게 됩니다. 이로 인해 생성된 모든 트리들이 유사해지며, 따라서 이들 트리로부터의 예측 결과도 상당히 상관관계가 높아집니다.
  • 상관관계가 높은 예측의 평균화: 상관관계가 높은 여러 결과의 평균을 내는 것은 분산 감소에 큰 효과를 주지 못합니다.
  • 즉, 상관관계가 높은 트리들의 예측 결과를 평균내면, 원하는 만큼의 분산 감소를 얻을 수 없습니다.
  • 트리들 간의 상관관계 감소:
  • Random Forest는 m개의 예측 변수를 무작위로 선택함으로써, 각각의 트리가 서로 다른 특성들을 기반으로 학습하게 만듭니다. 이는 트리들 간의 상관관계를 낮추고, 결과적으로 전체 모델의 분산을 더욱 감소시키는 효과를 가져옵니다. 따라서, Random Forest는 각각의 트리들이 서로 다르게 보이도록 하여 "비상관화(de-correlate)"함으로써 분산을 더욱 효과적으로 줄이는 전략을 사용합니다. 이러한 방법은 각 트리의 독립성을 증가시키고, 전체 모델의 예측 성능을 향상시킵니다.

3.16 Example

반응형