首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Python在我的图表上显示R平方值

如何用Python在我的图表上显示R平方值
EN

Stack Overflow用户
提问于 2020-01-21 02:31:43
回答 2查看 13.4K关注 0票数 3

我是一个Python初学者,所以这可能比我所想的更明显。我正在使用Matplotlib通过神经网络以图形方式显示我的预测数据和实际数据。我能够计算r平方,并绘制我的数据,但现在我想将图本身上的值组合起来,每次新运行时它都会发生变化。

我的神经网络使用至少4个不同的输入,并给出一个输出。这是我的最终代码:

代码语言:javascript
运行
复制
y_predicted = model.predict(X_test)

下面是我计算R2的方法:

代码语言:javascript
运行
复制
# Using sklearn
from sklearn.metrics import r2_score
print r2_score(y_test, y_predicted)

这是我的图表:

代码语言:javascript
运行
复制
fig, ax = plt.subplots()
ax.scatter(y_test, y_predicted)
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
ax.set_xlabel('Actual')
ax.set_ylabel('Predicted')
#regression line
y_test, y_predicted = y_test.reshape(-1,1), y_predicted.reshape(-1,1)
ax.plot(y_test, LinearRegression().fit(y_test, y_predicted).predict(y_test))

plt.show()

它给出了一些类似于附图的东西,每次我改变纪元、层数或数据类型等时,R2都会变化。红色是我的回归线,我稍后将对其进行标记。因为R2是一个函数,所以我不能简单地使用图例或文本代码。

我也想展示MSE。

有人能帮我吗?

Graph

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-21 02:44:18

如果我理解正确的话,您希望在图形中显示R2。您可以将其添加到图表标题中:

代码语言:javascript
运行
复制
ax.set_title('R2: ' + str(r2_score(y_test, y_predicted)))

plt.show()之前

票数 3
EN

Stack Overflow用户

发布于 2020-11-19 07:15:50

如果要将r平方值放在图形本身上,如Microsoft Excel中的图形,则可以调用annotate方法:

代码语言:javascript
运行
复制
ax.annotate("r-squared = {:.3f}".format(r2_score(y_test, y_predicted)), (0, 1))

代码语言:javascript
运行
复制
plt.annotate("r-squared = {:.3f}".format(r2_score(y_test, y_predicted)), (0, 1))

第一个参数是要放在图形上的文本,第二个参数是该文本左下角的位置。如果你想添加另一行,比如MSE,你可以在第一个参数后面加上"\n“和任何你想要的文本。请记住,(x,y)元组是根据数据缩放的,因此,如果您的数据范围不是0,1,并且希望将文本放在左上角,则可能需要将第二个参数从(0,1)更改。

有关更多信息,请参见https://matplotlib.org/3.3.2/api/_as_gen/matplotlib.axes.Axes.annotate.htmlhttps://matplotlib.org/3.3.2/api/_as_gen/matplotlib.pyplot.annotate.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59829077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档