【数据分析面试】58.计算均方根误差 (Python)

在这里插入图片描述

题目: 计算均方根误差 (Python)

编写一个函数 calculate_rmse 来计算回归模型的均方根误差。该函数应接收两个列表,一个代表预测值 y_pred,另一个代表目标值 y_true

输入:

示例 1:

y_pred = [3,4,5]
y_true = [3,4,5]

def calculate_rmse(y_pred, y_true) -> 0

示例 2:

y_pred = [3,4,5]
y_true = [5,4,3]

def calculate_rmse(y_pred, y_true) -> 1.63

答案

解题思路

均方根误差(RMSE)是衡量预测值与实际值之间差异的标准。其计算公式为:

RMSE = 1 n ∑ i = 1 n ( y pred i − y true i ) 2 \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_{\text{pred}_i} - y_{\text{true}_i})^2} RMSE=n1i=1n(yprediytruei)2

其中:

  • y pred i y_{\text{pred}_i} ypredi 是第 i i i 个预测值
  • y true i y_{\text{true}_i} ytruei 是第 i i i 个目标值
  • n n n 是值的数量

答案代码

import math

def calculate_rmse(y_pred, y_true):
    # 检查输入列表的长度是否相同
    if len(y_pred) != len(y_true):
        raise ValueError("预测值和目标值列表的长度必须相同")

    # 计算差异平方和
    mse = sum((pred - true) ** 2 for pred, true in zip(y_pred, y_true)) / len(y_pred)
    
    # 返回均方根误差
    return round(math.sqrt(mse), 2)

# 示例 1
y_pred = [3, 4, 5]
y_true = [3, 4, 5]
print(calculate_rmse(y_pred, y_true))  # 输出: 0

# 示例 2
y_pred = [3, 4, 5]
y_true = [5, 4, 3]
print(calculate_rmse(y_pred, y_true))  # 输出: 1.63
  • zip(y_pred, y_true): 将预测值和目标值配对迭代。
  • (pred - true) ** 2: 计算每对预测值和目标值之间的平方差。
  • sum(...)/len(y_pred): 计算所有平方差的平均值。
  • math.sqrt(mse): 计算平均值的平方根。
  • round(..., 2): 将结果保留两位小数。

通过这种方法,我们可以计算并返回两个列表之间的均方根误差,从而评估预测模型的性能。

更多详细答案可关注公众号查阅。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值