정확도(Accuracy)
정확도는 전체 샘플 중에서 모델이 올바르게 예측한 샘플의 비율을 나타냄. 텍스트 분류 작업에서 자주 사용되며, 가장 기본적인 평가 매트릭스 중 하나임
정밀도(Precision)
정밀도는 모델이 긍정적으로 예측한 항목 중 실제로 긍정인 항목의 비율을 나타냄. 예를 들어, 스팸 이메일을 예측하는 모델에서 정밀도는 모델이 스팸으로 분류한 이메일 중 실제로 스팸인 이메일의 비율을 의미함
재현율(Recall)
재현율은 실제 긍정 항목 중 모델이 긍정적으로 예측한 항목의 비율을 나타냄. 스팸 이메일 예에서 재현율은 실제 스팸 이메일 중 모델이 스팸으로 올바르게 분류한 이메일의 비율임
F1 점수(F1 Score)
F1점수는 정밀도와 재현율의 조화 평균으로, 두 매트릭스의 균형을 나타냄. 두 매트릭스 중 하나가 다른 것보다 훨씬 높을 때 발생할 수 있는 불균형을 조정하는 데 유용함
BLEU Score(Bilingual Evaluation Understudy)
BLEU 점수는 기계 번역의 품질을 평가하는 데 널리 사용되는 매트릭스. 번역된 텍스트와 하나 이상의 참조 번역 사이의 단어 또는 구의 일치를 측정함. BLEU점수는 0과 1사이의 값으로, 높을 수록 번역의 품질이 더 좋음을 의미함
ROUGE Score(Recall-Oriented Understudy for Gisting Evaluation)
ROUGE 점수는 주로 요약 작업에서 사용되며, 생성된 요약과 여러 참조 요약 사이의 오버랩(예: 단어, 구)를 측정함. ROUGE-N(단어 n-gram의 일치), ROUGE-L(가장 긴 고옹 부분열) 등 여러 변형이 존재함
편집 거리(Edit Distance)
편집 거리(예 : 레벤슈타인 거리)는 한 문자열을 다른 문자열로 변환하기 위해 필요한 최소한의 문자 삽입, 삭제, 대체 작업의 수를 측정. 이 매트릭스는 텍스트 유사성 측정에 자주 사용됨
코사인 유사도(Cosine Similarity)
코사인 유사도는 두 벡터 간의 코사인 각도를 사용하여 텍스트 간의 유사성을 측정함. 이 매트릭스는 텍스트 문서의 유사성을 비교하는 데 널리 사용됨
1.정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1점수(F1 Score)
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 예측값과 실제값
y_true = [0, 1, 2, 2, 0]
y_pred = [0, 0, 2, 2, 0]
# 정확도
accuracy = accuracy_score(y_true, y_pred)
print(f"Accuracy: {accuracy}")
# 정밀도
precision = precision_score(y_true, y_pred, average='macro')
print(f"Precision: {precision}")
# 재현율
recall = recall_score(y_true, y_pred, average='macro')
print(f"Recall: {recall}")
# F1 점수
f1 = f1_score(y_true, y_pred, average='macro')
print(f"F1 Score: {f1}")
2.BLEU Score
from sacrebleu import corpus_bleu
# 실제 번역문과 참조 번역문
refs = [['The dog bit the man.', 'It was not unexpected.']]
sys = ['The dog bit the man.']
# BLEU 점수 계산
bleu = corpus_bleu(sys, refs)
print(f"BLEU Score: {bleu.score}")
3.ROUGE Score
from rouge import Rouge
# 생성된 요약과 참조 요약
hypothesis = "The dog bit the man."
reference = "A dog bit a man."
rouge = Rouge()
scores = rouge.get_scores(hypothesis, reference)
print(f"ROUGE Scores: {scores}")
4.편집거리(Edit Distance)
from nltk.metrics.distance import edit_distance
# 비교할 문자열
str1 = "apple"
str2 = "appel"
# 편집 거리 계산
distance = edit_distance(str1, str2)
print(f"Edit Distance: {distance}")
5.코사인 유사도(Cosine Similarity)
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.feature_extraction.text import TfidfVectorizer
# 비교할 문서
docs = ["The dog bit the man.", "The dog sat on the log."]
# TF-IDF 벡터화
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
# 코사인 유사도 계산
cosine_sim = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix)
print(f"Cosine Similarity: {cosine_sim}")