def rmse(a,b,i): x = rawdat1 a = a*(np.max(np.abs(x[:, i]))-np.min(np.abs(x[:, i])))+np.min(np.abs(x[:, i])) b = b*(np.max(np.abs(x[:, i]))-np.min(np.abs(x[:, i])))+np.min(np.abs(x[:, i])) #b = b*(np.max(np.abs(x[:, i]))-np.min(np.abs(x[:, i])))+np.min(np.abs(x[:, i])) er = [] for i in range(len(a)): er.append(a[i]-b[i]) er1 = [] er2 = [] for i in range(len(a)): er2.append(np.abs((a[i]-b[i]))/b[i]) for p in er: er1.append(p*p) loss = sqrt(sum(er1)/len(er1)) loss1 = sum(er2)/len(er2) return a,b,loss,loss1 e11,e21,et1,et11 = rmse(Predict_FG1,testY1,0)什么意思
时间: 2024-04-06 21:34:34 浏览: 63
几种ESPRIT算法性能分析RMSE,esprit算法原理,matlab
5星 · 资源好评率100%
这段代码定义了一个计算均方根误差(RMSE)的函数 `rmse()`,其输入参数和功能与之前的函数 `rmse()` 相同。
在代码的最后一行,函数 `rmse()` 被调用,其中 `Predict_FG1` 是模型对测试集的预测值,`testY1` 是测试集的真实值,`0` 是特征列的索引。函数的返回值分别赋值给 `e11`、`e21`、`et1` 和 `et11`。这里的变量名可能是作者根据实际情况定义的。
这段代码和之前的代码的主要区别是输入的数据不同,一个是原始数据的全量数据,另一个是测试集的数据。因为 RMSE 是用来衡量模型在测试集上的表现,所以需要使用测试集的数据来计算。
阅读全文