SSE是常用的模型评价指标,意为和方差,该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下
单变量情况下公式:
多变量下公式:
SSE1 = sum(list(map(lambda y, y_bar: np.square(y - y_bar), tmp["医疗总费用"].tolist(), tmp["model1"].tolist())))
- 这里使用的是Python自带的map函数,其用法和Julia中的map函数类似,但是返回的是一个迭代器,组要用list收起来成为列表
(tmp["医疗总费用"] - tmp["model1"]).pipe(lambda x: np.square(x)).sum()
- 通过流水线管道pipe操作,将上一个运算得到的DataFrame做为下一个函数运算的参数,并逐行计算结果
np.frompyfunc(lambda x,y: np.square(x - y), 2, 1)(tmp["医疗总费用"],tmp["model1"]).sum()
- 还可以通过np.frompyfunc将函数逐元素运用到数组中
- 第一个参数为函数
- 第二个参数为输入的参数个数
- 第三个函数为输出的结果个数
- 这个方法可以初始化为一个函数,然后需要逐个运算的数组传入函数就行
np.vectorize(lambda x,y: np.square(x-y))(tmp["医疗总费用"],tmp["model1"]).sum()
- 这个操作被称为向量化,其实和上面的类似,也是逐元素操作