模型评估,mse,mae,r2,rmse如何用代码输出为图片
时间: 2024-09-15 11:14:21 浏览: 76
模型评估中的MSE(均方误差)、MAE(平均绝对误差)、R²(决定系数)以及RMSE(均方根误差),通常是用于衡量预测结果与实际值之间的差距。将这些指标转换成图表展示通常涉及数据可视化步骤。在Python中,可以使用`matplotlib`库来创建这样的图像。
例如:
```python
import matplotlib.pyplot as plt
import numpy as np
# 假设我们有真实的y值和预测的y_pred值
y_true = [0, 1, 2, 3, 4]
y_pred = [0.5, 1.8, 2.3, 3.1, 3.9]
# 计算评价指标
mse = np.mean((y_true - y_pred) ** 2)
mae = np.mean(np.abs(y_true - y_pred))
r2 = 1 - (np.sum((y_true - np.mean(y_true)) ** 2) / np.sum((y_true - y_pred) ** 2))
rmse = np.sqrt(mse)
# 创建图形
fig, axs = plt.subplots(2, 2, figsize=(8, 6))
# 绘制线图
axs[0, 0].scatter(y_true, y_pred, label='True vs Predicted')
axs[0, 0].plot([min(y_true), max(y_true)], [min(y_true), max(y_true)], 'k--', label='Perfect Fit')
axs[0, 0].set_title('Scatter plot')
axs[0, 0].legend()
# 添加误差指标文本
for ax in axs.flat:
ax.text(.7, .9, f'MAE: {round(mae, 2)}\nRMSE: {round(rmse, 2)}', transform=ax.transAxes,
ha='center', va='top')
# 绘制直方图或箱线图展示误差分布
axs[1, 0].hist(np.abs(y_true - y_pred), bins=10, range=(0, max(np.abs(y_true - y_pred))), alpha=.5)
axs[1, 0].set_title('Error Distribution - MAE')
# R²值通常用颜色渐变表示,这里简化为文字
axs[1, 1].text(.5, .8, f'R²: {round(r2, 2)}', fontsize=12, transform=axs[1, 1].transAxes)
axs[1, 1].set_title('Correlation - R²')
plt.tight_layout()
plt.show()
```
这个例子展示了如何创建一个包含散点图、误差分布直方图和R²说明的图像。你可以根据实际的数据调整代码内容。完成之后,你会得到一张清晰地显示了各项指标的图表。
阅读全文