You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求帮助实现squared_errors函数以计算预测价格与实际价格的平方误差

搞定squared_errors函数的方案

嘿,我帮你梳理一下这个问题的解决思路,其实核心就是利用向量运算来高效计算每个样本的平方误差,不用写繁琐的循环~

首先,咱们明确需求:函数接收斜率、截距、房屋面积数组(shape (1000,1))和实际价格数组,要返回每个样本的**(预测价格-实际价格)²**组成的数组。预测价格的公式是 predicted_price = slope * surface + intercept,这个逻辑很清晰对吧?

实现代码

这里推荐用NumPy来处理数组运算,既简洁又高效,尤其适合1000个样本的规模:

import numpy as np

def squared_errors(slope, intercept, surfaces, prices):
    # 先确保输入是NumPy数组(如果用户传的是列表也能兼容)
    surfaces = np.asarray(surfaces)
    prices = np.asarray(prices)
    
    # 用向量运算计算所有样本的预测价格,不用写for循环!
    predicted_prices = slope * surfaces + intercept
    
    # 计算每个样本的平方误差
    squared_errors_arr = (predicted_prices - prices) ** 2
    
    return squared_errors_arr

代码解释

  • 向量运算:NumPy的广播机制会自动对数组里的每个元素执行运算,比如slope * surfaces会把斜率和每个面积值相乘,完全不用手动遍历1000个样本,既省代码又快。
  • 鲁棒性处理:用np.asarray()把输入转成NumPy数组,就算用户传入的是Python列表也能正常工作。
  • 返回结果:最终返回的squared_errors_arr形状和输入的surfaces/prices一致,也就是(1000,1)的数组,每个元素对应一个样本的平方误差。

测试小例子

比如用几个简单的数值测试一下:

# 测试参数
slope = 2
intercept = 1
surfaces = np.array([[1], [2], [3]])
prices = np.array([[3], [5], [7]])

# 调用函数
errors = squared_errors(slope, intercept, surfaces, prices)
print(errors)
# 输出:[[0]
#        [0]
#        [0]]

这个例子里预测价格和实际价格完全匹配,所以平方误差都是0,符合预期~

如果之后你需要计算均方误差(MSE),只需要对返回的数组取均值就行:mse = np.mean(errors)

内容的提问来源于stack exchange,提问作者t0bster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:07:33