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

[Classification 1] 2. Data split in supervised learning

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

2. Data split in supervised learning

2.1 Over-fitting training data

  • 과적합(over-fitting)
    • 모델이 훈련 데이터에 너무 잘 맞춰져 있어서, 새로운 데이터나 테스트 데이터에 대해서는 잘 작동하지 않는 현상.
    • 이는 모델이 훈련 데이터의 패턴뿐만 아니라 노이즈까지 학습해버려, 일반화(generalization) 능력이 떨어지게 되는 것.
      • 예를 들어, 훈련 데이터를 분류하는 문제에서, '레드 경계'(Red boundary)가 훈련 데이터의 각 포인트를 완벽하게 구분하도록 복잡하게 그어져 있다면, 이는 과적합의 예가 될 수 있다.
      • 반면, '블루 경계'(Blue boundary)가 더 단순하고 일반적인 경향을 나타내면서 대부분의 포인트를 구분한다면, 이는 과적합을 피하고 보다 좋은 일반화 능력을 보여주는 것으로 간주될 수 있다.
  • 테스트 데이터에 대한 메시지, "모두를 외우지 마라!"는 모델이 훈련 데이터의 모든 세부 사항을 외우는 것이 아니라, 일반적인 패턴을 학습해야 한다는 것을 강조.
  • 과적합을 방지하기 위해, 모델의 복잡도를 적절히 조절하거나, 교차 검증(cross-validation) 같은 기법을 사용하거나, 데이터를 더 많이 수집하는 등의 방법이 사용될 수 있다.

2.2 Generalization

  • 일반화(Generalization)는 머신러닝 모델이 새로운, 보지 못한 데이터에 대해 얼마나 잘 작동하는지를 나타냅니다.
  • 모델이 훈련 데이터에서만 잘 작동하고 새로운 데이터에 대해서는 성능이 저하되면, 이는 일반화가 잘 이루어지지 않았음을 의미.
  • 훈련 오류(Training error): 훈련 세트에 대한 오류 측정값. 이는 모델이 훈련 데이터에 얼마나 잘 맞는지를 나타냅니다.
  • 일반화 오류(Generalization error): 새로운 입력에 대한 오류의 기대값으로, 일반적으로 훈련 세트와 별도로 수집된 테스트 세트에서의 오류(테스트 오류)를 추정하여 평가.
  • 머신러닝에서는 훈련 오류뿐만 아니라 일반화 오류도 낮게 유지하는 것이 목표.
  • 오버피팅(Overfitting): 모델이 훈련 데이터에 대해서는 매우 잘 작동하지만, 새로운 데이터(테스트 데이터)에 대해서는 성능이 저하되는 현상.
  • 이는 모델이 훈련 데이터의 잡음이나 비현실적인 패턴까지 학습해버려, 일반화 능력이 떨어진 경우.
  • 따라서, 머신러닝 모델을 설계할 때는 일반화 능력을 높이기 위한 전략을 적용하는 것이 중요.
  • 이를 위해 교차 검증, 규제화 같은 기법을 사용하거나, 모델의 복잡도를 적절하게 조절하여 오버피팅을 방지할 수 있다.

2.3 Train-Test data split

  • 분류기의 성능은 테스트 세트에서 측정됩니다.
  • 별도의 테스트 세트가 필요한 이유는 무엇일까요?
    • 이는 모델의 일반화 성능을 평가하고 과적합을 방지하기 위해서입니다.
  • 모델 복잡도와 훈련/테스트 오류
  • 모델의 복잡도가 증가할수록 훈련 데이터에 대한 모델의 성능은 향상될 수 있지만, 너무 복잡한 모델은 과적합을 유발할 위험이 있습니다.
  • 이는 모델이 훈련 데이터의 노이즈까지 학습해버려, 새로운 데이터(테스트 데이터)에 대해 일반화하는 능력이 떨어지게 됩니다.
  • ‘훈련 오류’ 대비 ‘테스트 오류’: 훈련 오류는 모델이 훈련 데이터에 얼마나 잘 맞는지를 나타내는 반면, 테스트 오류는 새로운 데이터(테스트 세트)에 대한 모델의 예측 성능을 평가합니다.
  • 모델이 잘 일반화되어 있다면, 훈련 오류와 테스트 오류 사이의 차이가 작아야 합니다.
  • 따라서, 훈련 데이터만을 사용하여 모델을 평가하면 과적합의 위험이 있으며, 모델의 실제 성능을 제대로 파악할 수 없습니다.
  • 이를 방지하기 위해, 별도의 테스트 세트를 사용하여 모델의 일반화 성능을 평가하는 것이 중요.
  • 이는 모델이 새로운 데이터에 대해 얼마나 잘 작동하는지를 이해하는 데 도움 훈련 데이터와 테스트 데이터 분할에 대해 설명하겠습니다.
  • 테스트 데이터로 훈련을 하지 마세요:
  • 이는 과적합(overfitting)을 피하기 위함입니다.
  • 과적합이 발생하면 모델이 훈련 데이터에만 너무 잘 맞추어져 있어 새로운 데이터에 대한 예측 성능이 떨어집니다.
  • 데이터 분할 비율: 일반적으로 80:20, 70:30, 90:10 등의 비율로 분할합니다.
  • 이는 데이터의 크기에 따라 달라질 수 있습니다. 충분한 양의 훈련 데이터를 확보하는 동시에 테스트를 위한 충분한 데이터도 확보해야 합니다.
  • 이와 같이 분할하지 않고 교차 검증(cross-validation)을 수행하는 경우도 있습니다.
  • [훈련/검증]/테스트 데이터 분할이 일반적입니다:
  • 이는 모델 선택 또는 하이퍼파라미터 튜닝을 위해 사용됩니다. 테스트 세트는 최종 성능 평가를 위해서만 사용됩니다.
  • 이러한 분할 방법은 모델이 새로운 데이터에 대해 얼마나 잘 일반화하는지를 평가하는 데 중요합니다.
  • 특히, 검증 세트는 모델의 하이퍼파라미터를 조정하거나 여러 모델 간 성능을 비교할 때 사용되며, 최종 모델이 선택된 후에는 테스트 세트를 사용하여 그 성능을 평가합니다.
  • 이 과정을 통해 모델이 실제 세계의 데이터에 대해 얼마나 잘 작동할지를 더 정확하게 예측할 수 있습니다.

2.4 Train/Validation/Test set

2.5 Classification algorithms

  • K-Nearest Neighbor
  • Support Vector Machine (SVM)
  • Decision tree and Random Forest
  • Logistic regression
  • Neural networks

Most of the algorithms above can also be used for regression

 

반응형