我使用keras实现了回归神经网络,并且试图绘制结果。
plt.plot(Y_test, Y_pred, 'ro')
plt.xlabel('Actual values')
plt.ylabel('Predicted values')
plt.show()
但是我需要在我的绘图中添加拟合线,如下图所示。您能帮上忙吗?
答案 0 :(得分:1)
我想这就是你想要的,
import numpy as np
import matplotlib.pyplot as plt
Y_test = np.random.rand(100) # Random Data
Y_pred = Y_test + np.random.rand(100)*0.1 # Random Data
r_squared = 0.59
plt.scatter(Y_test,Y_pred)
plt.xlabel('Actual values')
plt.ylabel('Predicted values')
plt.plot(np.unique(Y_test), np.poly1d(np.polyfit(Y_test, Y_pred, 1))(np.unique(Y_test)))
plt.text(0.6, 0.5, 'R-squared = %0.2f' % r_squared)
plt.show()
答案 1 :(得分:0)
首先使用scipy.stats.linregress
生成回归模型:-
linreg = sp.stats.linregress(Y_test, Y_pred)
然后可以将回归线添加到您的绘图中:-
plt.plot(x, linreg.intercept + linreg.slope*y, 'r')
r平方值类似:-
plt.text(0, 1, linreg.rvalue)
答案 2 :(得分:0)
import numpy as np
import matplotlib.pyplot as plt
Y_test = np.random.rand(100) # Random Data
Y_pred = Y_test + np.random.rand(100)*0.1 # Random Data
r_squared = 0.59
plt.scatter(Y_test,Y_pred)
plt.xlabel('Actual values')
plt.ylabel('Predicted values')
plt.plot(np.unique(Y_test), np.poly1d(np.polyfit(Y_test, Y_pred, 1))
np.unique(Y_test)))
plt.text(0.6, 0.5, 'R\u00B2 = %0.2f' % r_squared)
plt.show()