손실 함수 설계
손실 함수에서는 마찬가지로 Subgroup과 BPSN에 좀 더 가중치를 두었습니다.
identity_columns = [
"male", "female",
"homosexual_gay_or_lesbian",
"christian", "jewish",
"muslim", "black",
"white",
"psychiatric_or_mental_illness",
]
subgroup_bool = (train_df[subgroups].fillna(0) >= 0.5).sum(axis=1) > 0
positive_bool = train_df["target"] >= 0.5
# Overall
weights = np.ones(len(train_df)) * 0.25
# Backgroud Positive and Subgroup Negative
weights[
((~subgroup_bool) & (positive_bool)) | ((subgroup_bool) & (~positive_bool))
] += 0.25