Replicated

다중클래스 분류 & 소프트맥스 분류 본문

빅데이터마이닝

다중클래스 분류 & 소프트맥스 분류

라구넹 2025. 4. 12. 16:21

다중클래스 분류(multi-class classification)

- 2개 이상의 클래스를 가진 y값에 대한 분류

 

* 다중 클래스와 다중 레이블

다중 클래스 분류

- 2개 이상의 클래스를 가진 분류 작업

- 중복 선택 불가

다중 레이블 분류

- 상호 배타적이지 않은 속성 예측

- 중복 선택 가능

 

분류 접근

One-vs-All

- 각 클래스를 나머지 클래스와 구별하는 방식, 각 분류기는 자신이 속한 클래스의 확률을 출력하고 가장 높은 확률을 가진 클래스를 예측값으로 선택 (분류기 m개)

- One-vs-Rest라고도 함

 

One-vs-One

- 클래스 간 모든 쌍에 대해 이진 분류기를 학습, 클래스 수가 많으면 필요한 분류기의 수가 기하급수적으로 증가. 최종적으로 각 분류기들의 결과를 투표로 결정

- 총 m(m-1)/2개 분류기 생성

- 분류기가 많아질수록 정확도가 높아지지만, 비용도 증가

 

소프트맥스 함수

- 시그모이드 함수로 다중클래스 분류 문제 다룰 수 있음

- 각각의 클래스에 속하는지 속하지 않는지 이진 분류기 m개 생성, 가장 높은 확률이 나오는 클래스 선택

- 분류기 번호 m에 대해 hₘ(x; θ)로 표현

- 근데 hₘ(x; θ) 확률 합이 1 이상이 됨

=> 모든 클래스의 발생 확률을 1로 정규화

다중 클래스 분류에서 여러 선형회귀의 출력 결과를 정규화하여 합이 1이 되도록 만드는 함수

 

z는 선형 결합

 

 

소프트맥스 함수로 구현하는 소프트맥스 분류

- 각 클래스에 대해 독립적인 선형 모델 학습

- 각 클래스마다 하나의 가중치 벡터 존재

각 세타j는 클래스 j에 대한 파라미터 벡터

같은 입력 x에 대해 서로 다른 세타(클래스 별 파라미터 벡터)가 곱해져서 클래스별 점수를 만들어 내는 것

 

다중 클래스 분류의 크로스 엔트로피

실제 정답이 클래스 j일때만 1, 그 외에는 0임

그리고 입력 x에 대해 클래스 j일 확률을 구함

=> 정답 클래스에 대한 로그 확률만 선택해서 음수로 바꿈

정확힌 이건 샘플 하나에 대한 크로스 엔트로피 손실을 계산함

샘플 하나를 모든 클래스에 대해 계산해보는 거.. 사실상 하나의 j에 대해서만 로그 확률을 더함

 

전체 데이터셋에 대한 평균 Cost

m: 전체 샘플 수

K: 클래스 수

yi: i번째 샘플의 실제 레이블

xi: i번째 샘플의 입력 벡터

 

'빅데이터마이닝' 카테고리의 다른 글

베이즈 분류기  (0) 2025.04.12
다중클래스 분류의 코드 구현  (0) 2025.04.12
로지스틱 회귀 구현  (0) 2025.04.12
분류 문제의 성능 지표  (0) 2025.04.12
로지스틱 회귀  (0) 2025.04.11