Python计算拟合优度R^2及三维可视化
def __sst(y_no_fitting):
'''
计算SST(total sum of squares) 总平方和
:param y_no_predicted: List[int] or array[int] 待拟合的y
:return: 总平方和SST
'''
y_mean = sum(y_no_fitting) / len(y_no_fitting)
s_list =[(y - y_mean)**2 for y in y_no_fitting]
sst = sum(s_list)
return sst
def __ssr(y_fitting, y_no_fitting):
'''
计算SSR(regression sum of squares) 回归平方和
:param y_fitting: List[int] or array[int] 拟合好的y值
:param y_no_fitting: List[int] or array[int] 待拟合y值
:return: 回归平方和SSR
'''
y_mean = sum(y_no_fitting) / len(y_no_fitting)
s_list =[(y - y_mean)**2 for y in y_fitting]
ssr = sum(s_list)
return ssr
def __sse(y_fitting, y_no_fitting):
'''
计算SSE(error sum of squares) 残差平方和
:param y_fitting: List[int] or array[int] 拟合好的y值
:param y_no_fitting: List[int] or array[int] 待拟合y值
:return: 残差平方和SSE
'''
s_list = [(y_fitting[i] - y_no_fitting[i])**2 for i in range(len(y_fitting))]
sse = sum(s_list)
return sse
def goodness_of_fit(y_fitting, y_no_fitting):
'''
计算拟合优度R^2
:param y_fitting: List[int] or array[int] 拟合好的y值
:param y_no_fitting: List[int] or array[int] 待拟合y值
:return: 拟合优度R^2
'''
SSR = __ssr(y_fitting, y_no_fitting)
SST = __sst(y_no_fitting)
rr = SSR /SST
return rr
# 示例数据和拟合结果
y2 = [...] # 拟合好的y值
myz = [...] # 待拟合的y值
# 计算并打印拟合优度R^2
print(goodness_of_fit(y2,myz))
# ...其他代码...
# 将预测结果保存为CSV文件
np.savetxt('厚度预测结果.csv',pre_results,delimiter=',')
代码说明:
- 函数定义: 定义了四个函数用于计算总平方和SST、回归平方和SSR、残差平方和SSE以及拟合优度R^2。
- 计算拟合优度: 使用
goodness_of_fit函数计算拟合优度R^2,并将结果打印输出。 - 三维可视化: 使用matplotlib库绘制三维曲面图和散点图,展示拟合结果和预测结果。
- 保存预测结果: 使用numpy库将预测结果保存为CSV文件,方便后续分析和使用。
代码功能:
该代码片段实现了以下功能:
- 计算拟合优度R^2,评估模型拟合效果。
- 使用三维曲面图和散点图,可视化展示拟合结果。
- 将预测结果保存为CSV文件,方便后续分析和使用。
关键词: Python, 拟合优度, R^2, 三维可视化, 曲面图, 散点图, 数据分析
原文地址: https://www.cveoy.top/t/topic/fNn4 著作权归作者所有。请勿转载和采集!