observe_db

[정보 검색] 11. Test Classification & Naive Bayes 본문

학교 공부/정보검색(4-2)

[정보 검색] 11. Test Classification & Naive Bayes

쩡윤 2024. 11. 28. 20:53

원본 chap. 13~15

 

X는 doc.들의 공간

C는 class의 집합

D는 라벨된 doc.들의 학습 set

 

분류기 γ : X->C

ex. 감성 분석

 

방식

1) 수작업

2) 규칙 기반

3) 통계/확률적

 

Naive Bayes

 

c_map = argmax P(c|d)

이를 베이즈 정리를 이용하여 풀면

c_map = argmax P(d|c)*P(c)

 

또한 이 수식을 따른다.

n_d는 document의 길이(=token의 수)

t_k는 문서속의 토큰.

 

Maximum a posteriori(MAP) class 

 

그리고 값들이 확률값이므로 [0,1]의 범위를 가진다.=>곱하면 수가 계속 작아져 underflow 발생 가능

=>log 사용.

 

여기서 Nc는 class c 내의 doc의 수. N은 전체 doc 수

Tct는 class c의 학습 doc 안의 t 토큰 수.

 

수정: 분모가 0이 되는 것을 막음

 

 

Evaluation of TC

Macroaveraging

  • F1을 각 클래스 C에 대해 계산.
  • 그 평균을 계산
  • 클래스별 정확도 평균

Microaveraging

  • TP, FP, FN을 각 클래스 C에 대해 계산
  • C들을 다 더하고
  • F1을 계산.
  • instance들의 평균.

 

Chap 14. Vector Space Classification

Intro vector space classification

 

vector space에서는

term을 axes로 사용.(대충 100,000여개의 차원)

길이에 대해 normalize

 

vector space classification의 전제

1) 같은 클래스는 연속적(가까이 있음)

2) 타 클래스와 overlap은 없음.

 

상위 차원에서 하위 차원으로 projection시 거리에 대해 오독이 생길 수 있음.

 

Rocchio

각 클래스의 중심(centroid)를 구해서 그 거리를 이용해서 분류

중심점 구하는 식

근데 나이브 베이즈보단 안좋음.

(convex가 아니면 다루지 못함+multimodal class 불가)

 

 

kNN(k-Nearest Neighbor)

나이브 베이즈보다 좋음.

P(c|d) = fraction of k neighbors of d that are in c

k의 경계 내에서 가장 많은 클래스로 설정.

k 값 정하는 것도 관건.

 

Chat 15-1 SVM(Support Vector Machine)

SVM intro

경계를 명확히 구분=>class 나누기에 용이

마진을 최대로 하는 곳에 결정 경계를 만들고, 그것을 통해 결정

 
Comments