Rsquared估计

时间:2017-04-05 11:30:16

标签: python numpy

此函数的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

1 个答案:

答案 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