此函数的R平方估计误差是多少?
def R2(X, Y, model):
Y_mean = np.mean(Y, axis=0)
pred = model.predict(X)
res = np.sum(np.square(Y - pred))
tot = np.sum(np.square(Y - Y_mean))
r2 = 1 - res / tot
return r2
答案 0 :(得分:1)
好消息是你计算确定系数R2的函数是正确的。您可以通过计算R2对Y的Y进行测试,得到1.0,如预期的那样。
问题是Y和pred的形状不一样。 如果重塑pred以匹配Y的形状,则数学运算符合预期。
def R2(X, Y, model):
Y_mean = np.mean(Y, axis=0)
pred = model.predict(X)
print Y.shape, pred.shape
pred = pred.reshape(Y.shape[0])
print Y.shape, pred.shape
res = np.sum(np.square(Y - pred))
tot = np.sum(np.square(Y - Y_mean))
r2 = 1 - res / tot
return r2