# train.py
training_args = TrainingArguments(**cfg['TrainingArguments'])
def func1(*arg):
print(arg)
def func2(**kwarg):
print(kwarg)
func1('a','b')
func2(first='a', second='b')
# ('a','b')
# {first:'a', second: 'b'}
파라미터 개수를 알지 못할 때 파라미터 arg나 **kwarg를 쓰는데 arg는 tuple 형태, kwarg는 dict 형태로 반환해준다. kwarg는 key와 value를 모두 입력해줘야 함.
# train.py
# F1 = 2 * (precision * recall) / (precision + recall)
# 공식 문서 형식
sklearn.metrics.f1_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')
# 실제 활용
sklearn.metrics.f1_score(labels, preds, average="micro", labels=label_indices)
사이킷런의 f1 score를 사용하는데 반환값은 0에서 1사이의 값이고 우리가 사용할 때는 100을 곱해서 사용한다. average는 micro를 사용하는데 total true positive, false negative, false positive를 사용한다고 한다. (추가적으로 더 알아보기)
Calculate metrics globally by counting the total true positives, false negatives and false positives.
# 공식 문서 형식
sklearn.model_selection.StratifiedShuffleSplit(n_splits=10, *, test_size=None, train_size=None, random_state=None)
# 실제 활용
StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
StratifiedKFold와 ShuffleSplit이 합쳐진 버전