Как отобразить значение R-квадрата на моем графике в Python - PullRequest
1 голос
/ 20 января 2020

Я Python новичок, так что это может быть более очевидным, чем я думаю. Я использую Matplotlib для графического представления моих прогнозируемых данных против фактических данных через нейронную сеть. Я могу рассчитать r-квадрат и построить свои данные, но теперь я хочу объединить значение на самом графике, которое меняется с каждым новым прогоном.

Мой NN использует как минимум 4 различных входа, и дает один вывод. Это мой конечный код для этого:

y_predicted = model.predict(X_test)

Вот как я вычисляю R2:

# Using sklearn
from sklearn.metrics import r2_score
print r2_score(y_test, y_predicted)

, и это мой график:

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 меняется каждый раз, когда я меняю эпохи, или количество слоев, или тип данных и т. д. c. Красный - моя линия регрессии, которую я обозначу позже. Поскольку R2 - это функция, я не могу просто использовать легенду или текстовый код.

Я также хотел бы показать MSE.

Может кто-нибудь мне помочь?

Graph

1 Ответ

0 голосов
/ 20 января 2020

Если я правильно понимаю, вы хотите показать R2 на графике. Вы можете добавить его в заголовок графика:

ax.set_title('R2: ' + str(r2_score(y_test, y_predicted)))

до plt.show()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...