【发布时间】:2020-10-31 09:46:00
【问题描述】:
我正在尝试计算预测的 r2,我有我认为应该可以工作的代码,但预测的 r2 的输出为“无”。我不确定这是否意味着它是 0 或者是否有问题?
这是我正在使用的代码:
y_true= Y
y_pred = xgboostmodel.predict(X)
xs = X
def press_statistic(y_true, y_pred, xs):
res = y_pred - y_true
hat = xs.dot(np.linalg.pinv(xs))
den = (1 - np.diagonal(hat))
sqr = np.square(res/den)
return sqr.sum()
def predicted_r2(y_true, y_pred, xs):
press = press_statistic(y_true=y_true,
y_pred=y_pred,
xs=xs
)
def r2(y_true, y_pred):
"""
Calculation of the unadjusted r-squared, goodness of fit metric
"""
sse = np.square( y_pred - y_true ).sum()
sst = np.square( y_true - y_true.mean() ).sum()
return 1 - sse/sst
print(r2(y_true, y_pred))
print(predicted_r2(y_true, y_pred, xs))
打印 r2 工作并给出 0.87
打印预测的 r2 只输出 none - 如果有的话,这里出了什么问题?
【问题讨论】:
-
你错过了
return
标签: python machine-learning statistics regression