데이터 사이언스 - 6. 머신러닝 기초 (6.1 머신러닝 개념 및 기본 용어)

2025. 3. 20. 16:07데이터 분석/데이터 사이언스

6.1 머신러닝 개념 및 기본 용어

머신러닝(Machine Learning)은 데이터에서 패턴을 학습하여 자동으로 예측하거나 분류하는 기술이다.
전통적인 프로그래밍과 달리, 명시적인 규칙을 프로그래밍하지 않고 데이터 기반으로 모델을 학습하는 것이 특징이다.

이 장에서는 머신러닝의 주요 개념과 기본 용어(지도학습 vs 비지도학습, 모델 학습 과정, 데이터 분할 방법 등)을 다룬다.


6.1.1 머신러닝이란?

머신러닝(Machine Learning)

  • 데이터를 통해 패턴을 학습하고 예측을 수행하는 인공지능(AI)의 한 분야
  • 사람이 직접 프로그래밍하지 않고, 데이터에서 규칙을 자동으로 학습
  • 대표적인 예시: 스팸 이메일 분류, 고객 추천 시스템, 자율주행

머신러닝 vs 전통적인 프로그래밍

전통적인 프로그래밍 머신러닝
규칙을 사람이 직접 프로그래밍 데이터를 학습하여 규칙을 자동으로 찾음
명확한 조건과 규칙이 필요 패턴을 스스로 학습
예) 계산기, 금융 시스템 예) 이미지 분류, 음성 인식

6.1.2 지도학습(Supervised Learning) vs 비지도학습(Unsupervised Learning)

머신러닝은 학습 방식에 따라 지도학습과 비지도학습으로 구분된다.

① 지도학습 (Supervised Learning)

  • 정답(레이블, Label)이 주어진 데이터로 학습하는 방식
  • 목표: 입력 데이터(X) → 출력 값(y) 예측
  • 주어진 데이터에서 패턴을 학습하여 새로운 데이터에 대해 예측 가능
  • 대표적인 알고리즘: 선형 회귀, 로지스틱 회귀, 의사결정나무, 랜덤포레스트, 신경망(딥러닝)

📌 지도학습 예시

고객 정보 구매 여부 (레이블)
25세, 여성, 학생 구매(O)
40세, 남성, 직장인 구매(X)
30세, 여성, 직장인 구매(O)

💡 실제 적용 사례

  • 이메일 스팸 필터링 (스팸/정상 메일 분류)
  • 신용카드 부정 거래 탐지
  • 의료 영상 진단 (CT/MRI에서 암 진단)

② 비지도학습 (Unsupervised Learning)

  • 정답(레이블)이 없는 데이터에서 패턴을 학습하는 방식
  • 데이터의 구조를 발견하는 것이 목표 (예: 데이터 군집화, 차원 축소)
  • 대표적인 알고리즘: K-평균(K-Means), 계층 군집(Hierarchical Clustering), 주성분 분석(PCA)

📌 비지도학습 예시

고객 정보 그룹 (자동 분류)
25세, 여성, 학생 군집 A
40세, 남성, 직장인 군집 B
30세, 여성, 직장인 군집 A

💡 실제 적용 사례

  • 고객 세분화 (고객 데이터를 그룹화하여 마케팅 전략 수립)
  • 문서 자동 분류 (비슷한 뉴스 기사 묶기)
  • 이상 탐지 (이상 거래 탐지, 보안 시스템)

6.1.3 모델 학습 과정 (Training, Validation, Testing)

머신러닝 모델이 제대로 작동하려면 훈련(Training), 검증(Validation), 테스트(Testing) 과정이 필요하다.

모델 학습 단계
1️⃣ 훈련(Training):

  • 주어진 데이터로 모델을 학습
  • 모델이 패턴을 찾아가는 과정

2️⃣ 검증(Validation):

  • 모델의 성능을 중간 점검
  • 하이퍼파라미터(learning rate, batch size 등) 조정

3️⃣ 테스트(Testing):

  • 학습이 완료된 모델을 새로운 데이터에서 평가
  • 모델의 일반화 성능(새로운 데이터에서의 성능) 확인

📌 학습 과정 예시

단계 사용 데이터 역할
Training 학습 데이터 (Train Set) 모델 학습
Validation 검증 데이터 (Validation Set) 하이퍼파라미터 조정
Testing 테스트 데이터 (Test Set) 모델 최종 평가

과적합(Overfitting) 방지

  • 모델이 훈련 데이터에 너무 최적화되면 새로운 데이터에서 성능이 낮아짐
  • 이를 방지하기 위해 검증 데이터(Validation Set)를 활용하여 조정

6.1.4 데이터 분할 (Train-Test Split, Cross Validation)

① Train-Test Split (훈련-테스트 데이터 분할)

모델 성능을 평가하려면 데이터를 훈련(Train)과 테스트(Test) 데이터로 분할해야 한다.

📌 훈련-테스트 분할 코드 예제

from sklearn.model_selection import train_test_split
import numpy as np

# 샘플 데이터 생성
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
y = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

# 80% 훈련 데이터, 20% 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

print("훈련 데이터 개수:", len(X_train))
print("테스트 데이터 개수:", len(X_test))

출력 결과

훈련 데이터 개수: 8
테스트 데이터 개수: 2

테스트 데이터 비율 선택

  • 데이터가 많을 경우: 80% Train / 20% Test
  • 데이터가 적을 경우: 90% Train / 10% Test

② 교차 검증 (Cross Validation, CV)

교차 검증(Cross Validation)

  • 데이터를 여러 개의 Fold(조각)로 나누고 여러 번 학습하여 평가하는 방법
  • 훈련 데이터가 적을 때 유용
  • 대표적인 방법: K-Fold Cross Validation

📌 K-Fold 교차 검증 예제 (K=5)

from sklearn.model_selection import KFold

# 5-Fold 교차 검증
kf = KFold(n_splits=5, shuffle=True, random_state=42)

for train_index, val_index in kf.split(X):
    print("Train:", train_index, "Validation:", val_index)

교차 검증 장점

  • 모델이 모든 데이터를 학습 및 검증에 활용 → 일반화 성능 향상
  • 과적합 방지 효과

언제 교차 검증을 사용할까?

  • 데이터가 적을 때 (데이터를 최대한 활용해야 할 때)
  • 하이퍼파라미터 최적화를 할 때

결론

머신러닝 모델을 학습하려면 지도학습 vs 비지도학습 개념을 이해하고, 학습 과정 및 데이터 분할 전략을 올바르게 설정해야 한다.

핵심 요약

  • 지도학습 vs 비지도학습 → 데이터에 정답(레이블)이 있는지 여부
  • 모델 학습 과정 → 훈련(Training), 검증(Validation), 테스트(Testing) 단계
  • 데이터 분할 방법 → Train-Test Split, Cross Validation 활용

이러한 개념을 잘 이해하면 머신러닝 모델을 효율적으로 학습시키고 성능을 최적화할 수 있다.