본문 바로가기
ML&AI

텍스트마이닝

by 혜룐 2024. 10. 20.

 

1. 정확률 (Accuracy)

정확률은 전체 데이터 중에서 올바르게 예측한 비율을 나타내는 지표입니다. 즉, 모델이 얼마나 정확하게 예측했는지를 평가합니다.

정의:

정확률 (Accuracy)=올바르게 예측한 샘플 수전체 샘플 수=TP+TNTP+TN+FP+FN\text{정확률 (Accuracy)} = \frac{\text{올바르게 예측한 샘플 수}}{\text{전체 샘플 수}} = \frac{TP + TN}{TP + TN + FP + FN}정확률 (Accuracy)=전체 샘플 수올바르게 예측한 샘플 수​=TP+TN+FP+FNTP+TN​

  • TP (True Positive): 실제로 긍정인 데이터를 긍정으로 예측한 경우
  • TN (True Negative): 실제로 부정인 데이터를 부정으로 예측한 경우
  • FP (False Positive): 실제로 부정인 데이터를 긍정으로 예측한 경우 (오탐)
  • FN (False Negative): 실제로 긍정인 데이터를 부정으로 예측한 경우 (미탐)

설명:

정확률은 전체 데이터 중에서 모델이 얼마나 맞췄는지를 나타냅니다. 그러나 정확률만으로는 불균형한 데이터에서는 성능을 제대로 평가하기 어렵습니다. 예를 들어, 긍정 클래스가 99%이고 부정 클래스가 1%인 경우, 단순히 모든 데이터를 긍정으로 예측하는 모델도 99%의 정확률을 가질 수 있지만 실제로는 부정 데이터를 전혀 감지하지 못합니다.

2. 프리시전 (Precision)

프리시전은 모델이 긍정으로 예측한 샘플 중에서 실제로 긍정인 비율을 나타냅니다. 즉, 오탐(False Positive)을 얼마나 줄였는가를 측정합니다.

정의:

프리시전 (Precision)=True PositiveTrue Positive+False Positive=TPTP+FP\text{프리시전 (Precision)} = \frac{\text{True Positive}}{\text{True Positive} + \text{False Positive}} = \frac{TP}{TP + FP}프리시전 (Precision)=True Positive+False PositiveTrue Positive​=TP+FPTP​

설명:

프리시전은 모델이 긍정으로 예측한 것들 중에서 실제로 맞춘 비율입니다. 프리시전은 특히 오탐을 줄이는 데 중점을 둡니다. 예를 들어, 스팸 필터링 시스템에서 스팸으로 분류된 이메일들이 정말 스팸인지를 확인하는 데 중요합니다. 프리시전이 높을수록, 잘못된 긍정 예측이 적다는 것을 의미합니다.

3. 리콜 (Recall)

리콜은 실제 긍정인 데이터 중에서 모델이 얼마나 잘 감지했는가를 나타냅니다. 즉, 미탐(False Negative)을 얼마나 줄였는가를 측정합니다.

정의:

리콜 (Recall)=True PositiveTrue Positive+False Negative=TPTP+FN\text{리콜 (Recall)} = \frac{\text{True Positive}}{\text{True Positive} + \text{False Negative}} = \frac{TP}{TP + FN}리콜 (Recall)=True Positive+False NegativeTrue Positive​=TP+FNTP​

설명:

리콜은 실제 긍정인 데이터를 모델이 얼마나 잘 찾았는지를 나타냅니다. 즉, 미탐(FN)을 줄이는 데 중점을 둡니다. 예를 들어, 질병 진단 시스템에서 리콜은 실제 환자 중에서 모델이 몇 명을 찾아냈는가에 해당하며, 리콜이 높을수록 환자를 놓치는 확률이 줄어듭니다.

프리시전과 리콜의 관계

프리시전과 리콜은 종종 상충되는 경향이 있습니다. 프리시전을 높이기 위해서는 잘못된 긍정 예측을 줄여야 하고, 리콜을 높이기 위해서는 가능한 많은 긍정 샘플을 찾으려 해야 하기 때문에 하나를 높이면 다른 하나가 떨어질 수 있습니다. 따라서 두 지표 사이의 균형을 맞추는 것이 중요합니다.

이를 해결하기 위해 F1-score와 같은 조화 평균을 사용하여 프리시전과 리콜의 균형을 평가하기도 합니다.

결론

  • 정확률: 전체 데이터 중에서 얼마나 정확하게 예측했는가.
  • 프리시전: 긍정으로 예측한 것 중에서 얼마나 맞췄는가 (오탐 방지).
  • 리콜: 실제 긍정인 데이터 중에서 얼마나 잘 찾아냈는가 (미탐 방지)

 

마이크로 평균은 전체 클래스에 대해 각각의 TP, FP, FN 수치를 모두 한산 한 후에 성능 지표를 계산하는 방식이다. 즉 개별 클래스의 성과를 모두 합쳐서 하나의 전체 성과를 산출한다. 클래스가 불균형한 상황에서 사용하면 좋다. 당연히 전체 클래스로부터 합산한 결과이므로 큰 클래스의 성능이 강조되는 경향이 있다.

 

매크로평균은 각 클래스별로 개별적으로 프리시전, 리콜등의 지표를 계산한 후, 모든 클래스의 평균을 산출하는 방식이다. 즉 각 클래스의 성능을 동일하게 취급하고, 그 성능의 평균을 구하는 방식이다. 

마이크로 프리시젼 TP / TP+FP

마이크로 리콜 TP / TP+FN

매크로 프리시전 : 각 클래스 프리시젼의 평균

매크로 리콜 : 각 클래스 리콜의 평균




 

나이브베이지안 분류기

  • 확률 분류기이다. 각 특징이 독립적이라는 가정을 기반으로 작동하는데,이는 나이브 라는 용어에서 나타난다. 즉 각 특징이 다른 특징들과 관계없이 독립적으로 발생한다고 가정한다.

 

베이즈 정리

  • 베이즈정리는 어떤 사건이 발생할 확률을 계산할때 사용하는 확률 규칙이다. 이는 조건부 확률을 이용한 계산법으로, 각 클래스에 대한 확률을 계산하고 가장 높은 확률을 가진 클래스로 분류한다.



나이브 베이지안의 작동원리

  • 사후확률을 계산하고 가장 높은 확률을 가진 클래스로 분류하는것이다.
  • C는 클래스 , X는 입력데이터(피쳐,특징) 이다.

나이브 베이지안의 종류

  • 이항 나이브베이지안
  • 다항 나이브베이지안
  • 가우시안 나이브베이지안 

단점

  • 나이브베이지안은 각 피쳐=특징이 서로 독립적이라는 가정으로 부터 출발한 확률분류기이다. 그러나 실제로는 대부분의 특징이 서로 연관되어 있을수 있지만, 나이브 베이지안은 이를 무시하고 독립성을 가정한다.
  • 그리고 어떤 단어가 훈련데이터에 전혀 등장하지 않으면, 해당 단어가 포함된 문서에 대해 확률을 0으로 계산하는 문제가 발생할수 있다. 그래서 이를 방지하기 위해 라플라스스무딩 Laplacian smooting을 적용한다.













라플라스 스무딩

C클래스 해당 클래스가 선택될 확률 3/4

C클래스 전체 단어수 = 총 8

어휘집합의 크기 = 즉 데이터셋에 등장하는 고유한 단어의 갯수 = 총 6

CH - 빈도 6

B - 1

S - 1

Ma - 1

T - 1

J - 1

 

J클래스 해당 클래스가 선택될 확률 1/4

J클래스 전체 단어수 = 총 3

어휘집합의 크기 = 총 3

 

라플라스 스무딩에서는 특정 단어가 훈련데이터에서 아예 등장하지 않으면 그 단어의 조건부 확률이 0이 되기 때문에 0으로 취급되지 않도록 하는 기법이다. 그래서 이를 방지 하기 위해 모든 단어의 빈도수에 +1을 하는 것이다.

 

  1. P(c|test data) = P(c) * (6/14)3빈빈도 * 1/14 * 1/14 = 0.0003
  2. P(j|test data) = 1/4 * (2/9)3빈빈도 * 2/9 * 2/19 = 0.0001
  3. 테스트 데이터가 클래스C에 속할 확률이 더 높으므로 테스트데이터는 클래스C로 분류된다.

 


 

스태밍 Stemming

  • 단어의 접미사나 변형된 형태를 잘라내어 어근stem을 추출하는 기법이다. 단순히 형태적인 부분을 처리하기 때문에 정확한 어근을 추출하지 않을 수 있다. 스태밍은 어근 추출과정이 비교적 단순하며 규칙기반의 알고리즘을 주로 사용한다.

 

렘마타이제이션 Lemmatization

  • 단어의 문법적 형태나 활용을 분석하여 정확한 사전형태로 변환하는 작업이다. 문법적정보 = 품사를 기반으로 정확한 어휘의 기본형을 반환한다. = 스테밍보다 더 정교한 방법으로 어휘 사전을 참고해 변환이 이뤄진다.
  • 신조어 처럼 사전에 없는 단어가 등장했을때는 oov 사전에 없는 단어를 어떻게 처리?

형태소분석 Morphological Analysis

  • 형태소분석은 단어를 형태소 라는 작은 의미 단위로 분해하는 과정이다. 형태소는 단어의 최소 의미 단위로, 형태소 분석을 통해 어근과 접사(접두사, 접미사)를 분리할수 있다. 이를 통해 단어의 구체적인 의미나 문법적 구조를 분석한다.
  • 한국어와 같은 교착어에서는 형태소 분석이 필수적이다. 먹었습니다 → 먹(어근) + 었(과거) + 습(존칭) +니다(종결) 처럼 분해할수 있다.

 

토크나이제이션 Tokenization

  • 문장을 단어 또는 문장부호로 나누는 과정이다. 이는 텍스트전처리에서 중요한 첫 단계로, 각각의 단어를 토큰으로 변환하여 텍스트를 분석할수 있도록 한다. 영어와 같은 언어는 공백을 기준으로 나누지만 중국어, 일본어와 같이 공백이 없는 언어에서는 더 복잡한 방식이 필요하다.
  • 토크나이제이션은 텍스트를 단어 또는 문장부호 단위로 분할하는 작업이다.

 

노멀라이제이션 Normalization

  • 텍스트를 표준적인 형식으로 변환하는 과정으로, 단어의 대소문자를 통일하거나, 불필요한 구두점, 특수문자를 제거하여 일관된 형식을 유지하는것을 말한다. U.S.A = USA동일하게 취급

 

토큰,워드토큰,워드타입

  • 토큰 : 토큰은 텍스트를 구성하는 개별 단어,구두점 등을 의미한다. 한 문장에서 등장하는 모든 단어가 토큰으로 처리된다.
  • 워드토큰 : 문장에서 실제로 등장한 단어의 수이다. 같은 단어가 여러번 등장할수 있고, 모든 단어가 토큰으로 처리된다.
  • 워드타입 : 고유한 단어의 수를 의미한다. 같은 단어가 여러번 등장해도 한번만 카운트된다.