지도학습의 개념

지도학습

  • 정의 : 입력(feature) + 정답(label)을 가지고 예측 규칙을 배우는 방법
  • 목표 : 훈련 데이터 뿐만 아니라, 처음 보는 데이터에서도 예측 성능 향상
  • 예시1 : 어제까지 고객 데이터로 “내일 이탈할 고객” 미리 알기
    • 기존 고객 정보 + 탈퇴 여부 -> 내일 이탈할 고객 예측
  • 예시2 : 기존 거래 사기(Fraud) 데이터로 새로운 사기 탐지
    • 기존 사기 거래 데이터 -> 사기인지 아닌지 구분하지 못했던 거래 or 새로운 사기거래 예측
image

지도학습(Supervised learning)이란?

  • 정답 라벨이 있는 훈련 데이터를 사용해 예측 모델을 학습하는 방법
  • 목표 : 훈련 데이터로 학습한 모델이 새로운 데이터에서도 정확한 예측을 수행
    • 데이터 : 입력(feature, )과 정답(label, )이 항상 쌍으로 존재
    • 데이터들은 여러 개 축적 돼 있음

지도학습의 종류 (회귀 vs 분류)

회귀(Regression)

  • 예측하고 싶은 결과값이 숫자일 때 사용
  • 예시) 가격, 점수, 온도

분류(Classfication)

  • 예측하고 싶은 결과값이 범주일 때 사용
  • 예시) 스팸/정상, 질병 유무

지도학습 용어

image

특성(Feature, )

  • 예측에 사용되는 설명 변수
  • 예측 함수 의 input으로 들어가는 변수
  • 예 : 집값 예측에서의 feature {지역, 평수, 방수, 연식}

라벨(Label, )

  • 맞춰야 하는 정답(실제값)
  • 예 : 집값, 스팸/정상이메일

예측값()

  • 학습 과정에서 모델이 내놓은 결과 (숫자 또는 범주)
  • y의 추정치

오류(Error)

  • 예측값()과 라벨(y)의 차이 :

오류 != 측정 오차

예측값과 실제값의 차이(오류)를 줄이는 것이 지도학습의 목표이다.

회귀(Regression) 문제

image

회귀(Regression)

  • 정의 : 입력(feature)으로부터 숫자(output)을 얼마나 정확히 예측할까?
  • 특징 : 라벨 및 예측 모델의 출력은 연속적인 수치

회귀 오류 : 평균제곱오차(MSE)

예측이 얼마나 정확한지 어떻게 알 수 있을까?

평균제곱오차(Mean Squared Error)

  • 각 데이터에서 정답()과 예측값()의 차이의 평균 제곱 차이값
  • 틀린 정도를 제곱해서 더 큰 오류에 패널티 부여 -> 전체 평균 오류 수준을 한눈에 볼 수 있음

참고 : MSE 단위가 제곱이라 해석이 어렵다면?

  • 원래 데이터와 같은 단위라서 해석이 쉬운 RMSE(MSE의 제곱근)도 사용

R은 root를 의미

결정계수 ()

image
  • Label(y)의 분산 중에서 Feature로 설명되는 비율
  • “평균만 쓰는 단순한 예측”보다 모델이 실제값을 얼마나 더 잘 맞추는지를 0~1 사이 값으로 나타냄
  • 1에 가까울수록 설명력이 높고, 낮을수록 설명력이 낮음
  • : 들의 평균값

  • 가 음수가 나올 수 있을까? -> 예측값()들이 평균값 보다도 못한다면 나올 수 있음

MSE vs

  • MSE, 둘 다 모델의 정확도를 평가하기 위한 정량 지표
항목MSE
정의예측값과 실제값 차이의 제곱 평균평균 에ㅖ측 대비 모델의 상대적 성능
값 범위0 ~ 무한대0 ~ 1
단위실제 데이터 단위 ** 2단위 없음
해석절댓값 (구체적 오차 크기)상대적 비율 (성능 정도)
좋은 값0에 가까울수록 좋음1에 가까울수록 좋음
장점구체적 오차 크기 알 수 있음직관적 해석, 모델 간 비교 쉬움
단점직관적 해석 어려움구체적 오차 크기 모름

각 지표는 언제 사용하면 좋을까?

  • MSE
    • 구체적인 오차 크기가 중요할 때
    • 실제 손실 비용을 계산할 때
    • 모델 성능을 직관적으로 평가할 때
    • 여러 모델을 비교할 때
    • 모델이 전반적으로 얼마나 좋을지 알고 싶을 때

필요에 따라 상호 보완적으로 함께 사용

분류(Classification) 문제

분류(Classification)

  • 정의 : 입력 특성(Feature)으로부터 출력이 범주값(카테고리)으로 나타나는 예측 문제
  • 특징 : 범주 라벨(이진/다중)
  • 분류 모델에서 라벨은 미리 정해진 범주(카테고리) 중 하나의 값을 가짐

분류 모델의 예측 정확도는 어떻게 평가할까?

  • 분류모델은 Label이 범주로 돼 있기 때문에 MSE나 를 사용하기 어렵다.

정확도

  • 전체 예측 중에서 올바르게 맞춘 예측의 비율

: 지시(indicator) 함수 = 1 if A true

정확도가 99%이면 좋은 모델일까?

  • 불균형 데이터(양성 1%, 음성 99%)에서는 전부 음성이라 해도 정확도가 99%로 보일 수 있음

정확도의 함정 : 불균형 데이터 문제

  • 질병 진단 데이터 1000명
  • 실제 질병 환자 : 10명 (1%)
  • 실제 건강한 사람 : 990명 (99%)

->

무조건 모든 사람을 “건강하다”고 예측하는 문제가 있는 모델

->

질병 환자 -> “건강” 으로 예측 (10개 틀림) 건강한 환자 -> “건강”으로 예측 (990개 맞음)

정확도 = 맞춘 개수 / 전체 개수 = 99%

결론

  • 정확도는 단순히 “전체 중 맞춘 비율” 만 계산함
  • 정확도만 보지 말고 다른 지표도 함께 봐야 안전

혼동행렬 (Confusion Matrix)

  • 예측과 실제 값 사이의 관계를 행렬 형태로 표현
  • TP : 실제 양성, 예측도 양성
  • TN : 실제 음성, 예측도 음성
  • FP : 실제는 음성인데 양성이라 함(오탐)
  • FN : 실제는 양성인데 음성이라 함(누락)

정밀도(Precision)

  • “양성이라 판정한 것 중” 진짜 양성의 비율 = TP/(TP+FP)

재현율(Sensitivity or Recall)

  • “진짜 양성 가운데” 잡아낸 예측 양성 비율 = TP/(TP+FN)

F1-score

  • 정밀도와 재현율의 조화 평균

F1 = 2 * (정밀도 * 재현율) / (정밀도 + 재현율)

학습의 목적

학습의 목적 : 새로운 문제 해결하기

  • 목적 : 훈련 데이터로 학습한 모델이 새로운 데이터에서도 정확한 예측을 수행하도록 하는 것

훈련이 잘 됐는지 어떻게 확인할까 (모델 성능을 어떻게 평가할까?)

  • 학습 모델의 성능 평가는 모델이 처음 보는 (학습에 사용되지 않은) 데이터로 평가
    • 일반화 검증
  • 훈련 데이터에서 성능이 아무리 좋아도, 새로운 데이터에서 성능이 떨어지면 실전엔 사용할 수 없음
    • 일반화(generalization) 오류의 최소화 지향

오버피팅(overfitting)

훈련 데이터의 우연한 패턴/잡음까지 외워버려서 훈련에서는 잘 맞지만 테스트에서는 성능이 나빠지는 현상

image
  • 현상 : 훈련 오류 급격히 낮음, 테스트 오류 높음/요동

오버피팅이 왜 안 좋은가?

  • 표본(sample) 의존 & 불안정 : 훈련 데이터는 모집단의 일부 표본이라 우연한 잡음이 섞임. 이 것에만 과하게 맞추어 학습하면 샘플 몇 개만 바뀌어도 예측이 크게 흔들림 (분산 상승)
  • 일반화 실패 : 보지 못한 데이터(테스트) 오류가 커짐, 모집단(population) 성능과 격차가 벌어짐

오버피팅에 대한 오해

오버피팅 != 분포 변화(distribution shift)로 인한 에러 증가

  • 분포 변화로 인한 오류 : 훈련 데이터 분포와 테스트 분포가 다름으로(환경, 계절, 센서 변경 등) 성능이 떨어지는 현상
  • 분포 변화로 인한 에러 증가는 모델이 과적합하지 않아도 발생 가능
image

오버피팅 vs 언더피팅

오버피팅 vs 언더피팅 (균형 잡기)

  • 오버피팅 : 모델이 너무 복잡 -> 잡음까지 학습 (테스트 성능 나쁨)
  • 언더피팅 : 모델이 단순하거나 학습이 완료되지 않음 -> 중요한 패턴을 놓침(오류 큼)
image