对于回归任务的误差展示方式,提供一个自己的作图示例。
回归任务最终我们有真值、预测值、误差值,如果想把这些结果以图的形式展示出来,直接在一张图上,我还没找到一个好的展现形式,我想到的是,用两个图去展示这些结果,类似下面这种:
图的左半部分为散点图,展示真实值与预测值;图的右侧为直方图,展示误差。
我还见到一些用森林图来展示的(目前还没用过),以及用折线图展示(我觉得折线图对于横轴有连贯关系的可以,向上面那种用折线图感觉不合适),这些后面如果用到再进行补充吧 。
上面那种形式的代码如下:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=1, ncols=2)
ax[0].scatter(list(range(8)), [0, 0, -5, 0.083834968, 0.083834968, 0.046679761, 0, 0], marker='x', s=50)
ax[0].scatter(list(range(8)),
[-0.044304427, -0.055897386, -4.709306038, 0.300752527, 0.307069213, 0.211004726, 1.0708309,
-1.748374749], marker='+')
ax[1].bar(list(range(8)),
[0.044304427, 0.055897386, 0.290693962, 0.216917559, 0.223234244, 0.164324965, 1.0708309, 1.748374749])
ticks = np.arange(0, 8, 1)
labels = ['x', 'y', 'z', r'$\beta_x$', r'$\beta_y$', r'$\beta_z$', 'pitch', 'roll']
ax[0].set_xticks(ticks)
ax[0].set_xticklabels(labels, rotation=30)
ax[1].set_xticks(ticks)
ax[1].set_xticklabels(labels, rotation=30)
ax[0].legend(['True', 'predicted'])
ax[0].set_title('result')
ax[1].set_title('error')
plt.show()