본문 바로가기

IT

지도학습(Supervised Learning)이란 무엇인가?(라벨이 있는 데이터로 똑똑해지는 가장 현실적인 머신러닝)

728x90
반응형
728x170

머신러닝을 처음 접하면 다들 비슷한 장면을 겪습니다.
“AI가 알아서 학습한다며? 그럼 나는 커피만 마시면 되는 거 아니야?”


현실은 커피를 물 마시듯이 매일 마시며 데이터를 닦고, 라벨을 확인하고, 성능을 재고, 과적합과 싸우는 일의 연속이죠. 그 치열한 전장 한가운데에 가장 자주 등장하는 주인공이 바로 지도학습입니다.

 

지도학습은 한 문장으로 요약하면 이렇습니다.

  • 입력(특성, feature)과 정답(라벨, label)이 짝지어진 데이터를 보고
  • “이런 입력이면 정답은 보통 이거야”라는 규칙을 모델이 배우는 방식

지도학습이 필요한 순간은 정답지가 있는 문제집을 풀면서 정답에 가까워지게 하는 느낌

지도학습은 정답지가 있는 문제집을 풀며 실력이 느는 과정과 비슷합니다.

  • 문제: 이메일 내용(입력)
  • 정답: 스팸/정상(라벨)
  • 목표: 다음에 새로운 이메일이 오면 스팸인지 맞히기

즉 “정답(라벨)이 존재한다”가 핵심입니다. 라벨이 없으면 지도학습이 아니라 비지도학습(unsupervised learning) 쪽 이야기로 넘어갑니다.


지도학습의 2대 장르: 분류(Classification) vs 회귀(Regression)

지도학습은 보통 두 종류로 나뉩니다.

1) 분류: 카테고리를 맞히는 문제

정답이 “종류”인 경우입니다.

  • 스팸/정상
  • 사기 거래/정상 거래
  • 고양이/강아지/기타
  • 이탈 고객/유지 고객

2) 회귀: 숫자를 예측하는 문제

정답이 “연속적인 값”인 경우입니다.

  • 집값 예측(원 단위)
  • 배달 시간 예측(분 단위)
  • 매출 예측(숫자)

한눈에 보는 지도학습 요약 표

구분 목표(라벨) 형태 대표 예시 자주 쓰는 평가 지표
분류(Classification) 범주(클래스) 스팸 판별, 이미지 분류 Accuracy, Precision/Recall, F1, ROC-AUC
회귀(Regression) 연속 숫자 집값, 수요 예측 MAE, MSE/RMSE, R²

 

여기서 “평가 지표”는 나중에 정말 중요해집니다. 모델이 똑똑해졌는지 확인하려면 점수를 매겨야 하니까요.


지도학습의 핵심 용어를 사람 말로 번역해보기

지도학습을 어렵게 만드는 건 수학이 아니라 용어입니다. 자주 등장하는 핵심 용어를 “사람 말”로 바꿔보겠습니다.

특성(Feature): 모델이 보는 힌트들

입력 데이터에서 모델에게 제공하는 정보입니다.

  • 집값 예측이라면: 평수, 역과의 거리, 건축 연도, 학군 점수
  • 스팸 분류라면: 특정 단어 포함 여부, 링크 개수, 발신 도메인

특성을 어떻게 만들고 고르느냐가 성능의 절반을 결정하는 경우도 많습니다.

라벨(Label): 정답

모델이 맞혀야 할 답입니다.

  • 스팸 여부(0/1)
  • 집값(숫자)
  • 고양이/강아지/기타(클래스)

학습(Training): 정답지를 보고 규칙을 찾는 시간

모델이 데이터에서 패턴을 배우는 단계입니다.

손실 함수(Loss Function): 틀린 정도를 숫자로 매긴 벌점표

모델이 얼마나 틀렸는지 측정하는 함수입니다.
모델은 대체로 “손실을 줄이는 방향”으로 학습합니다.

  • 회귀에서 흔한 손실: MSE(평균제곱오차), MAE(평균절대오차)
  • 분류에서 흔한 손실: Cross-Entropy(교차 엔트로피)

손실이 낮아지면 대체로 모델이 더 잘 맞히고 있다는 뜻입니다(대체로, 라는 말이 붙는 이유는 뒤에서 나옵니다).


학습/검증/테스트 데이터: 컨닝 방지 3단 콤보

지도학습에서 아주 흔한 실수는 “문제집을 외워서 만점 받기”입니다.
모델도 똑같이 외울 수 있습니다. 그게 바로 과적합입니다.

 

그래서 데이터를 보통 이렇게 나눕니다.

  • 학습(Train): 모델이 공부하는 데이터
  • 검증(Validation): 중간고사. 튜닝할 때 참고
  • 테스트(Test): 기말고사. 최종 성능 발표용

핵심은 하나입니다.

  • 테스트 데이터는 끝까지 아껴야 한다
    마지막에만 열어봐야 “진짜 실력”을 알 수 있습니다.

과적합(Overfitting)과 일반화(Generalization): 외운 천재 vs 이해한 실력자

과적합: 학습 데이터만 기가 막히게 잘 맞히는 상태

학습 점수는 높지만, 새로운 데이터에서는 성능이 떨어집니다.
문제집 답만 통째로 외운 상황과 비슷합니다.

 

과적합이 자주 생기는 조건:

  • 모델이 너무 복잡함(표현력이 과도함)
  • 데이터가 너무 적음
  • 노이즈가 많음
  • 검증 없이 하이퍼파라미터를 끝없이 만짐

일반화: 처음 보는 데이터에서도 잘 맞히는 상태

지도학습의 진짜 목적은 학습 데이터 만점이 아니라, 새로운 데이터에서도 잘 맞히는 능력입니다.


하이퍼파라미터(Hyperparameter): 모델의 성격 설정값

모델이 학습으로 “스스로” 배우는 값(가중치 등)과 달리, 사람이 “미리” 정해주는 설정값이 있습니다. 그게 하이퍼파라미터입니다.

 

예시:

  • 트리 모델의 max_depth(트리 깊이)
  • KNN의 k(몇 명 이웃을 볼지)
  • 신경망의 learning rate(학습률)
  • 정규화 강도 lambda

하이퍼파라미터 튜닝은 요리로 치면 불 조절입니다. 불이 너무 세면(학습률 과도) 태우고, 너무 약하면(학습률 부족) 영원히 안 익습니다.


대표 알고리즘: 지도학습에는 어떤 모델들이 있나

지도학습은 “라벨이 있는 데이터”를 학습하는 큰 범주이고, 그 안에 다양한 알고리즘이 있습니다.

  • 선형 회귀(Linear Regression): 회귀의 기본기, 빠르고 해석이 쉬움
  • 로지스틱 회귀(Logistic Regression): 이름은 회귀지만 분류에 자주 사용
  • 결정 트리(Decision Tree): 규칙 기반처럼 보이는 모델
  • 랜덤 포레스트(Random Forest): 여러 트리를 모아 성능과 안정성 강화
  • 그래디언트 부스팅(Gradient Boosting, XGBoost/LightGBM/CatBoost 계열): 실무에서 강력한 성능으로 자주 선택
  • SVM: 경계를 깔끔하게 잡는 데 강점이 있는 경우가 있음
  • 신경망(Neural Network): 데이터가 크고 복잡할수록 강점이 드러나는 편

실무 팁을 하나만 말하자면, “데이터 형태와 규모, 해석 가능성, 운영 난이도”까지 같이 보고 고릅니다. 성능만 높다고 끝이 아닙니다. 운영하다 보면 “왜 이런 예측이 나왔는지 설명 가능한가”가 갑자기 중요해지거든요.


지도학습은 실제로 이렇게 돌아간다

아래는 분류 문제를 매우 간단히 학습하는 전형적인 흐름입니다.
핵심은 “데이터 분리 → 학습 → 평가” 3단입니다.

from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.ensemble import RandomForestClassifier

# X: 특성(feature) 행렬, y: 라벨(label)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

model = RandomForestClassifier(n_estimators=300, random_state=42)
model.fit(X_train, y_train)

pred = model.predict(X_test)
print(classification_report(y_test, pred))

 

이 짧은 코드에도 지도학습의 중요한 요소가 다 들어 있습니다.

  • train_test_split: 컨닝 방지
  • fit: 학습
  • predict + metrics: 실력 측정

지도학습이 잘 안 되는 흔한 이유 5가지

  1. 라벨이 엉망이다
    라벨이 틀리면 모델은 틀린 걸 정답으로 배웁니다. 가장 무서운 유형입니다.
  2. 데이터 누수(Data Leakage)가 있다
    미래 정보를 몰래 써버리면 테스트 점수가 비정상적으로 높아집니다. 운영에서 바로 폭망합니다.
  3. 학습/테스트 분리가 현실을 반영하지 않는다
    시간 순서가 중요한 문제(수요 예측 등)를 무작위로 섞어 나누면 평가가 왜곡될 수 있습니다.
  4. 지표 선택이 목표와 다르다
    사기 탐지처럼 “놓치면 큰일”인 문제에서 Accuracy만 보면 착시가 생깁니다. Precision/Recall, F1 같은 지표가 중요해질 수 있습니다.
  5. 데이터 분포가 변한다(드리프트)
    학습 때와 운영 때 데이터가 달라지면 성능이 떨어집니다. 그래서 모니터링이 필요합니다.

지도학습을 이해했다는 건 무엇을 의미할까

지도학습을 “정답 맞히는 기술”로만 보면 반쪽짜리입니다. 진짜 이해는 아래 질문에 답할 수 있을 때 완성됩니다.

  • 이 문제는 분류인가, 회귀인가?
  • 라벨은 신뢰할 수 있나?
  • 평가는 어떤 지표로 해야 목표에 맞나?
  • 과적합을 어떻게 감지하고 줄일 건가?
  • 운영 환경에서도 같은 성능이 유지될까?

이 질문들을 스스로 던질 수 있으면, 지도학습은 더 이상 어려운 용어가 아니라 “현실 문제를 푸는 도구”가 됩니다.


참고 자료

728x90
반응형
그리드형