题解 | 损失函数

损失函数

https://www.nowcoder.com/practice/418d79c914b24329a9ce2763a33f3bf0

import numpy as np
def calculate_loss(real_values, predicted_values,delta):

    mse = np.mean(np.power(real_values-predicted_values, 2))
    mae = np.mean(np.abs(real_values-predicted_values))

    huber_loss = np.where(np.abs(real_values - predicted_values) <= delta, mse, mae) # 题解这个我感觉不太对,应该是逐点计算,怎么使用了全局的mse和mae呢
    cosine_loss = 1 - np.dot(real_values, predicted_values) / (np.linalg.norm(real_values) * np.linalg.norm(predicted_values))
    return round(mse, 6), round(mae, 6), round(np.mean(huber_loss), 6), round(cosine_loss, 6)
    

# 从标准输入读取数据
n = int(input())
real_values = []
predicted_values = []

for _ in range(n):
    real, predicted = map(float, input().split())
    real_values.append(real)
    predicted_values.append(predicted)

delta = float(input())  # 读取阈值

# 调用计算损失函数的函数
results = calculate_loss(np.array(real_values), np.array(predicted_values), delta)
# 输出结果
for value in results:
    print(f"{value:.6f}")




全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务