我正在尝试将交叉验证预测的levelone矩阵从我的h2o.ensemble转换为普通的R对象(数据帧),以便我可以处理数据。我可以从我的h2o.ensemble(fit)中检索levelone矩阵。当我尝试转换为数据帧时,我得到了一堆java错误。
> levelone_h2o <- fit$levelone
> print(levelone_h2o)
h2o.glm.wrapper h2o.randomForest.wrapper h2o.gbm.wrapper h2o.deeplearning.wrapper y
1 6647.155 1609.284 4617.418 3839.470 1600
2 9383.599 13436.505 18496.432 13803.004 13500
3 2499.189 8807.916 9859.840 5697.766 2200
4 11541.062 8067.081 12338.893 6955.093 5750
5 12884.708 14544.741 16254.272 14843.988 14500
6 5757.545 6501.096 10247.327 4794.154 6250
[122653 rows x 5 columns]
> df <- as.data.frame(levelone_h2o)
ERROR: Unexpected HTTP Status code: 500 Server Error (url = http://localhost:54321/3/DownloadDataset?frame_id=RTMP_sid_bce4_12&hex_string=1)
java.lang.NullPointerException
[1] "java.lang.NullPointerException"
[2] " water.api.DatasetServlet.doGet(DatasetServlet.java:35)"
我可以在这个简单的例子中操纵h2o.frame,但是它打破了levelone对象(我不认为我可以轻松提供)。
> df <- as.data.frame(cbind(labels = letters[1:5],numbers = 1:5))
> h2o_df <- as.h2o(df)
|========================================================================================| 100%
> print(h2o_df)
labels numbers
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
[5 rows x 2 columns]
> new_df <- as.data.frame(h2o_df, stringsAsFactors = FALSE)
> print(new_df) #converts to factors, but it's okay
labels numbers
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
提前感谢。