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=',')

代码说明:

  1. 函数定义: 定义了四个函数用于计算总平方和SST、回归平方和SSR、残差平方和SSE以及拟合优度R^2。
  2. 计算拟合优度: 使用goodness_of_fit函数计算拟合优度R^2,并将结果打印输出。
  3. 三维可视化: 使用matplotlib库绘制三维曲面图和散点图,展示拟合结果和预测结果。
  4. 保存预测结果: 使用numpy库将预测结果保存为CSV文件,方便后续分析和使用。

代码功能:

该代码片段实现了以下功能:

  • 计算拟合优度R^2,评估模型拟合效果。
  • 使用三维曲面图和散点图,可视化展示拟合结果。
  • 将预测结果保存为CSV文件,方便后续分析和使用。

关键词: Python, 拟合优度, R^2, 三维可视化, 曲面图, 散点图, 数据分析

Python计算拟合优度R^2及三维可视化

原文地址: https://www.cveoy.top/t/topic/fNn4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录