def evaluate_model(rmse, nmae=None, rmse_max=500, nmae_max=1.0): """ 모델 성능 점수화 함수 - RMSE와 NMAE는 작을수록 좋음 - RMSE는 [0, rmse_max], NMAE는 [0, nmae_max] 구간으로 정규화 - NMAE가 없는 경우 0점 처리 - 최종 점수는 RMSE와 NMAE 점수의 단순 평균 Args: rmse : float 모델의 RMSE 값 nmae : float or None 모델의 NMAE 값 (없으면 None) rmse_max : float RMSE 최대 기준값 (default=500) nmae_max : float NMAE 최대 기준값 (default=1.0) Return: dict : { "rmse_score": float, "nmae_score": float, "final_score": float } """ # RMSE 점수 (0~100) rmse_score = max(0, (1 - rmse / rmse_max) * 100) # NMAE 점수 (0~100) if nmae is not None: nmae_score = max(0, (1 - nmae / nmae_max) * 100) else: nmae_score = 0 # 최종 점수 = 단순 평균 final_score = (rmse_score + nmae_score) / 2 return final_score # return { # "rmse": round(rmse_score, 2), # "nmae": round(nmae_score, 2), # "final": round(final_score, 2) # }