23.08.06 对于两组明显的对数关系数据,进行拟合并输出公式
拟合
对于两组根据经验公式推测为对数关系的数据,我们除了学习机器学习相关知识外,还可以直接调用np的函数进行拟合。
通过使用np.polyfit()函数,输入x坐标系数、y坐标系数,多项式的度,可通过最小二乘法直接输出斜率与截距。对于对数函数,可以通过对x坐标系数进行对数计算后在做输出。代码示例:
def code_01(data_array):
ret = np.zeros(2)
x = np.log(data_array[:, 0]) # 拼贴误差
y = data_array[:, 1] # psnr
#----------------------------------------------------------
coefficients = np.polyfit(x, y, 1) # 拟合对数关系,返回拟合曲线的系数
slope = coefficients[0] # 斜率
intercept = coefficients[1] # 截距
log_equation = f"y = {slope:.3f} * loge(x) + {intercept:.2f}" # 对数关系公式
ret[0] = slope
ret[1] = intercept
print("对数关系公式:", log_equation)
# ----------------------------------------------------------
return ret
该函数中通过输入二维数组,对拼贴误差进行对数计算后,与psnr一并输入np函数,随后将输出的斜率与截距进行打印并输出。
注:适用于对数关系明显的数据,本质是对一元一次方程进行预测。
拟合效果检验
为了解线性回归模型优略,具有以下指标,分别为:均方误差、均方根误差、平均绝对误差、R方指标。
-
均方误差(MSE): 对每个数据的真实值与预测值做差后进行平方和后再做均值处理
-
均方根误差(RMSE): 即对军方误差最后结果进行开方
-
平均绝对误差(MAE): 对每个数据的真实值与预测值做差后的绝对值进行累加后再做均值处理
-
R方指标(R Squared): 即1减去(均方误差 / 方差)。其小于等于1,等于1时最好,均方误差为0。(R方可以对不同回归问题的模型准确度进行统一衡量)