使用 Pandas 和 NumPy 库,从 CSV 文件中读取数据,并对列名进行了更新。使用循环计算了三组数据的 RMSE、标准差和相关系数,并将结果打印输出。其中,RMSE(Root Mean Squared Error)是衡量预测值和真实值之间误差的一种方法;SD(Standard Deviation)是预测值和真实值之间误差的标准差;R(Correlation Coefficient)是衡量预测值和真实值之间线性关系的一种方法。通过计算这些指标,可以评估模型的性能和预测精度。
一、获得CSV文件中的列名
import pandas as pd
import numpy as np
# 读取 csv 文件
data = pd.read_csv('组合处理1.csv')
# 输出列名
print(data.columns)
# 更新列名
结果:
['true value', 'predicted value', 'Unnamed: 2', 'true value.1',
'predicted value.1', 'Unnamed: 5', 'true value.2', 'predicted value.2']
二、完整代码计算
import pandas as pd
import numpy as np
# 读取 csv 文件
data = pd.read_csv('组合处理1.csv')
# 输出列名
print(data.columns)
# 更新列名
data.columns = ['true value', 'predicted value', 'Unnamed: 2', 'true value.1',
'predicted value.1', 'Unnamed: 5', 'true value.2', 'predicted value.2']
# 分别计算三对数据
for i, (true_col, pred_col) in enumerate([('true value', 'predicted value'),
('true value.1', 'predicted value.1'),
('true value.2', 'predicted value.2')]):
# 提取需要计算的列
true_values = data[true_col]
predicted_values = data[pred_col]
# 计算RMSE
rmse = np.sqrt(((predicted_values - true_values) ** 2).mean())
# 计算标准差
sd = np.std(predicted_values - true_values)
# 计算相关系数
r = np.corrcoef(true_values, predicted_values)[0, 1]
print(f"第{i+1}组结果:")
print(f"RMSE: {rmse:.4f}")
print(f"SD: {sd:.4f}")
print(f"R: {r:.4f}")