머신러닝

한 눈에 보는 머신러닝 분석절차 : 알고리즘 선택부터 모델 평가까지

skcho 2025. 5. 9. 13:59

1. 분석 목적에 따른 알고리즘 유형 선택

머신러닝에서 어떤 알고리즘을 사용할지는 분석의 목적에 따라 달라진다. 우리가 이미 알고 있는 정답이 있는 경우인지, 아니면 정답을 모른 채 데이터에서 스스로 구조를 찾아야 하는 경우인지에 따라, 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning) 중 하나를 선택하게 된다.


(1) 지도학습 (Supervised Learning)

지도학습은 정답(목표 변수)이 주어진 상태에서, 입력 변수(X)와 정답(Y) 간의 규칙을 학습하고 이를 바탕으로 새로운 데이터의 정답을 예측하는 것이다.

예를 들어, 어떤 신문이 진보적인지 보수적인지를 미리 알고 있다고 하자. 이 경우, 여러 지도학습 알고리즘 중에서 텍스트 데이터에 적합한 방법(예: Naive Bayes, SVM 등)을 선택해 두 신문의 기사 내용을 분석하고, 어떤 단어나 표현이 진보와 보수를 구분하는지 학습할 수 있다. 이렇게 학습된 모델을 이용하면, 새로운 신문 기사가 주어졌을 때 그 기사가 진보적인지 보수적인지를 자동으로 판별할 수 있다.

지도학습의 대표적 예시:

  • 학력, 경력, 연령 등을 통해 소득을 예측하는 회귀 분석
  • 의료 데이터에서 환자의 특성을 바탕으로 질병 유무를 분류하는 작업
  • 이미지에 라벨이 붙어 있을 때, 고양이/개를 구분하는 분류 모델

목표변수가 연속형이면 → 회귀(Regression)
목표변수가 범주형이면 → 분류(Classification)

 

 

대표 알고리즘

  • Naive Bayes: 변수 간 독립 가정을 전제로 하지만, 고차원 텍스트 데이터에서 성능이 좋다
  • Decision Tree: 해석이 직관적이고 시각화가 용이하다
  • Artificial Neural Network (ANN): 예측력이 뛰어나지만, 해석이 어렵고 학습 시간이 길다
  • SVM, Random Forest 등: 텍스트 분류나 고차원 데이터에서 유용하게 사용됨

 

(2) 비지도학습 (Unsupervised Learning)

비지도학습은 정답이 주어지지 않은 상태에서, 데이터 속에 숨어 있는 구조나 패턴을 스스로 찾아내는 방식이다. 즉, "이 데이터들을 어떻게 분류해야 할지 모르지만, 비슷한 것들끼리 묶어달라"는 요청에 해당한다.

예를 들어, 유권자 1,000명의 나이, 직업, 교육 수준 같은 정보는 있지만, 이들을 어떻게 구분해야할지 모르는 경우가 있다. 이럴 때 머신러닝은 특성이 비슷한 사람들끼리 그룹화한다.
예를 들어 K-means 알고리즘은 데이터를 입력받아, "이런 특성을 가진 사람들은 서로 비슷할 것"이라는 기준으로 몇 개의 군집(cluster)을 자동으로 만들어 낸다.

또한 비지도학습은 차원 축소에도 활용된다. 변수 수가 지나치게 많아 분석이 어려울 때, 핵심 정보만 남기고 축약된 구조로 변환하는 데 사용된다.

대표 알고리즘

  • K-means 클러스터링: 사용자가 군집 수(k)를 정하면, 데이터를 해당 개수의 그룹으로 나눔
  • 계층적 군집화: 데이터 간 거리 기반으로 트리 구조의 군집 형성
  • DBSCAN: 밀도 기반 군집화로, 이상치 탐지에 유리
  • PCA: 고차원 데이터를 저차원으로 축소하여 핵심 구조를 파악

 

2. 데이터 준비

머신러닝 분석의 출발점은 데이터 준비다. 알고리즘을 실행하기 전에 다음 사항들을 반드시 점검해야 한다. 이 단계에서의 오류는 이후 분석 전체의 신뢰도를 떨어뜨릴 수 있기 때문에, 분석자에게는 단순한 실행보다 이 준비 과정이 더 중요할 수 있다.

  • 목표변수 지정
    지도학습의 경우, 예측하고자 하는 정답값(목표변수, y)을 명확히 지정해야 한다. 정답이 애매하거나 잘못 지정되면, 알고리즘이 잘못된 학습을 하게 된다.
  • 측정 수준 설정
    각 변수의 데이터 유형(예: 수치형, 범주형)을 정확히 지정해야 한다. 예를 들어, 숫자로 보이지만 사실은 범주형인 변수(예: 지역 코드, 학력 수준 등)를 수치형으로 잘못 처리할 경우 분석 결과에 왜곡이 생긴다.
  • 결측치 처리 및 정제
    대부분의 머신러닝 알고리즘은 결측값을 그대로 허용하지 않는다. 결측치를 제거하거나 대체(imputation)하는 등 사전 정제 작업이 필수적이다. 또한 이상치(outlier)나 중복 데이터에 대한 점검도 함께 이루어져야 한다.

3. 데이터 분할 및 검증

머신러닝에서 모델 성능을 제대로 평가하려면, 데이터를 훈련용, 검증용, 테스트용으로 분할해야 한다. 이는 모델이   새로운 데이터에서도 안정적인 성능을 발휘하는지 확인하기 위해 필요하다.

 데이터 분할 

  • 훈련 데이터 (Train)
    모델이 패턴을 학습하는 데 사용된다. 대부분의 파라미터는 이 데이터를 기반으로 계산된다.
  • 검증 데이터 (Validation)
    모델 훈련 도중, 하이퍼파라미터(설정값)를 조정하거나 성능을 모니터링하는 데 사용된다. 학습에는 포함되지 않지만, 조정과 선택을 위한 기준이 된다.
  • 테스트 데이터 (Test)
    모델이 완성된 후, 최종 성능을 객관적으로 평가하기 위해 사용하는 데이터다. 훈련이나 검증에  포함시키지 않는다.

일반적인 분할 비율은 6:2:2 또는 7:3 등이며, 분석 목적과 데이터 크기에 따라 유연하게 조정할 수 있다.

 

 교차검증 (Cross-Validation)

데이터가 부족하거나, 훈련에 데이터를 최대한 많이 할용하고 싶을 때는 교차검증을 활용한다. 이는 데이터를 여러 개의 폴드(fold)로 나눈 뒤, 각각을 훈련과 검증에 번갈아 사용하는 방식이다.

  • 가장 많이 쓰이는 방식은 k-겹 교차검증(k-fold cross-validation)이다.
  • 이 방식은 일관된 성능 추정과적합 방지에 효과적이다.

 

하이퍼파라미터 조정

 모델 구조나 학습 방식에 영향을 주는 설정값(하이퍼파라미터)은 자동으로 학습되지 않기 때문에 별도로 조정한다.

  • 예시:
    • kNN: 이웃 수(k)
    • 결정트리: 최대 깊이, 분할 기준
    • 신경망(ANN): 은닉층 수, 학습률 등

이러한 조정은 일반적으로 검증 데이터를 기준으로 반복 실험을 통해 이루어지며, 다음과 같은 방법이 사용된다:

  • Grid Search: 가능한 모든 조합을 시험
  • Random Search: 일부 조합을 무작위로 시험
  • AutoML: 자동화된 탐색 도구를 활용해 최적 조합 탐색

 

4. 모델 평가

머신러닝에서 가장 중요한 것은, 구축한 모델이 실제 예측 상황에서 얼마나 잘 작동하는지 평가하는 일이다. 단순히 훈련 데이터에서 높은 성능을 보였다고 해서 좋은 모델이라고 할 수는 없다.
가능한 한 실제 적용 대상과 유사한, 또는 오히려 이질적인 데이터에 대해 평가해 보는 것이 바람직하다.
훈련 데이터에 과도하게 맞춰진(overfitted) 모델은 새로운 데이터에서 성능이 급격히 떨어질 수 있기 때문이다.

 

1) 분류(Classification) 문제의 평가

분류 문제는 예측 결과가 맞았는지 틀렸는지가 중요하다. 가장 기본적인 평가지표는 정확도(Accuracy)지만, 이 지표 하나로는 한계가 있다.

 정확도(Accuracy)의 한계

예를 들어, 전체 데이터의 90%가 ‘0’이고 10%가 ‘1’인 상황에서 모든 예측을 ‘0’으로 하면 정확도는 90%가 된다. 하지만 이는 실제로는 거의 아무것도 예측하지 못한 것과 같다.

 혼동행렬(Confusion Matrix)

모델의 예측 결과와 실제 결과를 교차표 형태로 정리한 것이며, 다음 네 가지 요소로 구성된다:

  • TP (True Positive): 실제 1, 예측 1
  • FP (False Positive): 실제 0, 예측 1
  • FN (False Negative): 실제 1, 예측 0
  • TN (True Negative): 실제 0, 예측 0

이로부터 다음과 같은 지표들이 산출된다:

지표의미
Precision (정밀도) 예측이 참인 것 중 실제로 참인 비율 = TP / (TP + FP)
Recall (재현율) 실제 참 중 예측이 참인 비율 = TP / (TP + FN)
F1-score Precision과 Recall의 조화 평균
Accuracy 전체 중 맞춘 비율 = (TP + TN) / 전체
 

 ROC 곡선과 AUC

  • ROC 곡선은 X축에 False Positive Rate, Y축에 True Positive Rate(민감도)를  그린 그래프이다.
  • AUC (Area Under the Curve)는 ROC 곡선 아래 면적을 나타내며, 1에 가까울수록 성능이 뛰어난 모델이다.

2. 회귀(Regression) 문제의 평가

회귀 문제에서는 예측값이 실제값과 얼마나 가까운지, 즉 오차(error)가  평가 기준이다.

 주요 오차 지표 

MAE (Mean Absolute Error) 오차의 절댓값 평균 직관적이고 해석이 쉬움
MSE (Mean Squared Error) 오차 제곱의 평균 큰 오차에 더 민감함
RMSE (Root Mean Squared Error) MSE의 제곱근 MAE보다 큰 오차에 더 큰 페널티 부여
예: 오차가 (1, 1, 1)인 경우와 (3, 0, 0)인 경우는 MAE는 같지만 RMSE는 후자가 더 크다.  MAE와 RMSE는 보통 기준 모델(베이스라인)과의 비교를 통해 상대적 성능을 해석한다.

3. 변수 중요도와 설명 가능성

일부 머신러닝 알고리즘은 예측뿐 아니라 변수가 결과에 얼마나 영향을 미쳤는지에 대한 정보도 제공한다.
이는 특히 사회과학 등 설명이 중요한 분야에서 매우 유용하다.

  • Decision Tree, Random Forest 등은 변수 중요도(feature importance)를 시각적으로 제공하며,  Permutation  importance 방식으로 산출된다. 이 방식은 특정변수를 무작위로 섞었을 때 모델 성능이 얼마나 하락하는지를 통해 해당변수의 상대적 기여도를 판단한다.  그러나 이 기여도는 다른 변수와의 공변관계에 있는 변수들의 영향을 과대평가하는 경향이 있다.
  • SHAP 값 (SHapley Additive exPlanations)은 각 특성이  예측에 얼마나 기여했는지를 정량적으로 보여준다. 회귀계수와는 달리 다른 특성들을 통제한 이후의 고유의 효과를 의미하지는 않다. SHAP은 모든 변수 조합에서의 평균적 기여도를 계산하며, 상호작용 효과나 변수 간 상관관계까지 포함한 종합적 영향력을 보여준다.
  • 특히 SHAP은 변수의 평균적 영향이 아니라, 각 개별 사례(case)의 예측에 대한 특성별 영향값을 제시하며, 따라서 관측값 수만큼 SHAP 값이 생성된다. 이는 개별 예측에 대한 설명력을 제공한다는 점에서 전통 회귀분석의 계수 해석과는 근본적으로 다르다. 
     

4. 군집(Clustering) 문제의 평가

군집 분석은 정답이 없는 비지도학습이므로, 평가가 쉽지 않다. 하지만 다음과 같은 지표들이 자주 사용된다:

  • 실루엣 계수 (Silhouette Score): 군집 내 응집도와 군집 간 분리도를 종합 평가
  • Davies-Bouldin Index, Calinski-Harabasz Index 등도 활용 가능 
  • 다만, 군집 자체가 의미 있는지, 그리고 그 군집이 실제 해석 가능한 구조인지는 데이터보다 분석자의 해석과 맥락에 더 달려 다.

5. 일반화 가능성과 테스트 데이터

모델이 훈련 데이터에서 잘 작동하더라도, 다른 맥락에서도 작동하는지는 별개의 문제다.
이를 위해 머신러닝에서는 훈련 데이터와 테스트 데이터를 분리해 사용하며, 테스트 데이터를 통해 일반화 가능성을 검토한다.

그러나 테스트 데이터도 결국은 동일한 환경에서 수집된 데이터인 경우가 많다. 만약 다른 지역, 시간, 제도, 환경에서 수집된 데이터에 모델을 적용하고자 한다면, 단순한 정확도보다 이론적 적합성과 맥락 이해가 더욱 중요하다.

 

예:A학교 학생 데이터를 기반으로 만든 모델이 B학교에 적용 가능한가이 질문은 테스트 정확도만으로 판단할 수 없으며, 두 학교 간의 구조적 유사성을 함께 고려해야 한다.