상세 컨텐츠

본문 제목

TF predictions and metrics (F1 score, recall, precision etc)

Hugging Face Course

by Taeyoon.Kim.DS 2023. 9. 19. 18:51

본문

https://www.youtube.com/watch?v=nx10eh4CoOs&list=PLo2EIpI_JMQvWfQndUesu0nPBAtZ9gP1o&index=29 

# ['logits']라면 우선 토크나이즈 된 데이터셋의 validation 데이터셋을 숫자로 만든 후, preds라는 변수에 저장.
preds = model.predict(tokenized_datasets['validation'])['logits']
# 결과 확률값 = tensorflow의 nn 그리고 softmax값에 preds를 넣어서, 각 확률값이 도출되게 만듬.
probabilities = tf.nn.softmax(preds)
# class_preds는, probabilities에 도출된 확률값들에 대해서 argmax를 제공. argmax는 값 중에 가장 큰 값을 도출?
class_preds = np.argmax(probabilities, axis=1)

# ChatGPT답변:
"""
np.argmax는 NumPy 라이브러리에서 제공하는 함수로, 주어진 배열에서 가장 큰 값을 가진 요소의 인덱스를 반환합니다. 여기서 probabilities는 어떤 배열(데이터)이라고 가정하면, np.argmax(probabilities, axis=1)는 각 행에 대해 가장 큰 값을 가진 열(인덱스)을 찾아서 반환하는 것을 의미합니다.
예를 들어, probabilities가 다음과 같은 2차원 배열이라고 가정해보겠습니다:

probabilities = [[0.1, 0.3, 0.6],
                [0.2, 0.5, 0.3],
                [0.4, 0.2, 0.4]]
                
np.argmax = [2, 1, 0] --> 가장 큰 값의 인덱스를 제공."""

predictions: Logits --> outputs of the last layer, before softmax is applied. Softmax normalizes logits to probabilities.

 

from datasets import load_metric

metric = load_metric("glue", "mrpc")
metric.compute(predictions=class_preds, references=validation_labels)

Glue dataset has a predefined metric. mrpc has a built in accuracy metric.

F1 score, precision, recall, accuracy etc. 

model.compile(loss=loss, opt=opt, metric=['accuracy']

Normal binary distribution uses below matrix, however, should be different.

관련글 더보기