import numpy as np def calculate_loss(real_values, predicted_values, delta): mse = np.mean((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) 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}")