H2O给出与手动计算不同的R ^ 2?

时间:2018-02-25 21:36:19

标签: machine-learning random-forest h2o

我对H2O如何计算R ^ 2感到困惑。我使用H2O的RandomForestEstimator创建了一个虚拟数据框:

df = pd.DataFrame({'x':[1,2,3,4,5],'y':[3,9,2,8,1]})
h2o_df=h2o.H2OFrame(df)
rf = H2ORandomForestEstimator()
rf.train('x','y',h2o_df)
rf.r2()

这会返回-0.667,这表示相当差!但我用预测方法计算了R ^ 2:

y_true = df.y
y_pred = rf.predict(h2o_df).as_data_frame().predict
SSE = sum((y_pred-y_true)**2)
SST = sum((y_true-y_true.mean())**2)
r2 = 1-(SSE/SST)
r2

这会返回0.727,这更有意义。 .r2()方法内部发生了什么?

1 个答案:

答案 0 :(得分:1)

很确定这是一个错误。作为解决方法,rf.model_performance(h2o_df).r2()返回R ^ 2的正确值(与手动计算时相同)。