[데이터사이언스기초] Machine learning process

 

모델 선택과 데이터 전처리 (Model Selection & Data Preprocessing)

지난 포스팅에서는 머신러닝의 다양한 알고리즘과 Scikit-learn 라이브러리에 대해 알아보았다. 이번에는 머신러닝 모델 구축 과정에 대해 알아보겠다.
(model selection, data preprocessing, validation)

1. 모델 선택 (Model Selection)

머신러닝에는 수많은 모델들이 존재하며, 각 모델은 데이터와 문제의 특성에 따라 다른 성능을 보인다. 따라서 주어진 문제에 가장 적합한 모델을 선택하는 과정은 매우 중요하다. 모델 선택은 일반적으로 다음과 같은 기준을 고려하여 이루어진다.

  • Overfitting vs. Underfitting: Overfitting(과적합)은 모델이 학습 데이터에 지나치게 맞춰져 새로운 데이터에 대한 예측 성능이 떨어지는 현상을 말한다. 반대로, Underfitting(과소적합)은 모델이 학습 데이터의 복잡성을 충분히 반영하지 못하여 예측 성능이 낮은 현상을 말한다. 좋은 모델은 Overfitting과 Underfitting 사이의 적절한 균형을 이루어야 한다.
  • Complexity vs. Interpretability: 모델이 복잡할수록 학습 데이터에 대한 성능은 좋아질 수 있지만, 해석하기 어려워질 수 있다. 반대로, 모델이 단순할수록 해석하기 쉽지만, 성능이 떨어질 수 있습니다. 따라서 문제의 특성과 요구사항에 따라 모델의 복잡성과 해석 가능성 사이의 균형을 고려해야 한다. Occam's razor(오컴의 면도날)에 의해, 비슷한 성능을 내는 경우 단순한 모델이 좋다.
  • Bias vs. Variance: Bias(편향)는 모델의 예측값과 실제 값 사이의 차이를 의미하며, Variance(분산)는 모델의 예측값이 얼마나 퍼져 있는지를 나타낸다. Bias가 높은 모델은 단순하고 Underfitting될 가능성이 높으며, Variance가 높은 모델은 복잡하고 Overfitting될 가능성이 높다. 따라서 Bias와 Variance 사이의 최적의 균형점을 찾는 것이 중요다.

2. 데이터 전처리 (Data Preprocessing)

데이터 전처리는 머신러닝 모델의 성능을 향상시키기 위해 필수적인 과정이다. 현실 세계의 데이터는 종종 누락된 값, 이상치, 불균형한 분포 등 다양한 문제를 가지고 있다. 데이터 전처리를 통해 이러한 문제를 해결하고 데이터를 모델 학습에 적합한 형태로 변환해야 한다.

2.1. Standardization (표준화)

Standardization(표준화)는 각 특성(feature)을 비교할 수 있는 scale로 변환하는 과정이다. 이를 통해 특성들의 scale을 동일하게 만들어 모델 학습에 도움을 줄 수 있다. 많은 경우에 feature마다 scale이 달라 결과값에 미치는 영향이 달라지기 때문이다.

Scikit-learn은 다양한 Standardization 방법을 제공한다.

  • StandardScaler: 각 특성의 평균을 0, 표준 편차를 1로 변환
  • MinMaxScaler: 각 특성의 최솟값을 0, 최댓값을 1로 변환
  • MaxAbsScaler: 각 특성의 최대 절댓값을 1로 변환
Standardization


2.2. Data Shuffling (데이터 셔플링)

Data Shuffling(데이터 셔플링)은 데이터의 순서를 무작위로 섞는 과정이다. 이는 특정 클래스의 데이터가 연속적으로 나타나는 경우 발생할 수 있는 편향(bias)을 방지하고, 모델의 일반화 성능을 향상시키는 데 도움을 준다.

2.3. Validation (검증)

Validation(검증)은 모델의 성능을 평가하고 Overfitting을 방지하기 위한 과정이다. 일반적으로 데이터셋을 학습 세트(Training Set), 검증 세트(Validation Set), 테스트 세트(Test Set)로 나누어 사용한다.

  • Training Set: 모델 학습에 사용되는 데이터
  • Validation Set: 모델의 성능을 평가하고 하이퍼파라미터(hyperparameter)를 조정하는 데 사용되는 데이터
  • Test Set: 최종 모델의 성능을 평가하는 데 사용되는 데이터

2.4. Data Split & Cross Validation (데이터 분할 및 교차 검증)

Data Split(데이터 분할)은 데이터셋을 학습 세트와 테스트 세트로 나누는 과정이다. 일반적으로 70-80%를 학습 세트로, 20-30%를 테스트 세트로 사용한다.

Cross Validation(교차 검증)은 데이터 분할의 한계를 극복하기 위한 방법이다. 데이터셋을 여러 개의 fold로 나누고, 각 fold를 한 번씩 검증 세트로 사용하여 모델의 성능을 평가한다. 이를 통해 모델의 일반화 성능을 더욱 정확하게 평가할 수 있다.

Cross validation

2.5. Classification Metrics (분류 평가 지표)



분류 모델의 성능을 평가하기 위해 다양한 지표가 사용된다. 대표적인 지표로는 다음과 같은 것들이 있다.

  • Accuracy (정확도): 전체 예측 중 정답의 비율을 나타낸다.
  • Precision (정밀도): Positive로 예측한 것 중 실제 Positive의 비율을 나타낸다.
  • Recall (재현율): 실제 Positive 중 Positive로 예측한 비율을 나타낸다.
  • F1 Score: Precision과 Recall의 조화 평균으로, 모델의 전반적인 성능을 평가하는 데 사용된다.
    Confusion matrix


  • ROC Curve (수신자 조작 특성 곡선): 다양한 임계값(threshold)에 따른 True Positive Rate(TPR)와 False Positive Rate(FPR)의 관계를 나타내는 그래프이다.
  • AUC (Area Under the Curve): ROC 곡선 아래의 면적을 나타내며, 1에 가까울수록 모델의 성능이 좋다.

마무리하며

이번 포스팅에서는 모델 선택과 데이터 전처리에 대해 알아보았다. 머신러닝 모델 구축 과정에서 이 두 가지 단계는 매우 중요하며, 모델의 성능을 크게 좌우할 수 있다. 다음 포스팅에서는 로지스틱 회귀(Logistic Regression)에 대해 자세히 알아보겠다. 로지스틱 회귀는 분류 문제를 해결하는 데 널리 사용되는 알고리즘으로, 선형 회귀와 유사하지만 결과를 확률로 나타내는 특징이 있다.

추천글 :
[데이터사이언스기초] Introduction to Machine learning
(https://hyeonb.blogspot.com/2024/06/introduction-to-machine-learning.html)

hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2