寻找计算残差平方和(RSS)的NumPy/SciPy内置函数
可用的NumPy/SciPy内置函数替代手动计算RSS
NumPy:
np.linalg.norm
残差平方和等价于残差向量的L2范数的平方,用np.linalg.norm可直接计算:import numpy as np rss = np.linalg.norm(df3['x'] - df3['y'], ord=2) ** 2其中
ord=2指定计算L2范数,平方后得到的结果与np.sum(np.square(df3['x'] - df3['y']))完全等价。SciPy:
scipy.spatial.distance.sqeuclidean
该函数专门计算两个向量的平方欧氏距离,而平方欧氏距离的定义就是对应元素差的平方和,恰好匹配RSS的计算逻辑:from scipy.spatial.distance import sqeuclidean rss = sqeuclidean(df3['x'], df3['y'])无需手动执行做差、平方、求和步骤,一步即可得到结果。
补充:拟合场景下的RSS提取
若你是先通过scipy.optimize.curve_fit等工具完成拟合,可从拟合返回的pcov矩阵结合自由度推导RSS,但如果仅需计算两个数组的残差平方和,上述两个函数更直接高效。
内容的提问来源于stack exchange,提问作者scriptkiddie
相关产品推荐
相关产品推荐

