当我使用H2o包运行随机林模型时出现以下错误。
错误:来自localhost / 127.0.0.1:532321的DistributedException,由 java.lang.IllegalArgumentException:字符串上不允许操作 矢量。
我运行的代码如下: -
fit = h2o.randomForest(x = indep, y = dep, training_frame = QCAnalysis_sub_h2o, seed = 1234, ntrees = 500, mtries = 3, max_depth = 50)
请澄清错误。
答案 0 :(得分:2)
确保class(QCAnalysis_sub_h2o)
是" H2OFrame"并且您的indep
向量不包含任何字符串列。另请注意,使用as.h2o()
将R data.frame转换为H2O帧时,它会保留列类型,因此不会自动将任何字符串列转换为因子。您需要使用每列上的as.factor()
功能自动执行此操作(例如df[,"mycol"] <- as.factor(df[,"mycol"]
)。您可以在复制到H2O之前在R data.frame上执行此操作,或者可以在列在H2O框架中时修复列。
如果您使用h2o.importFile()
命令将CSV文件从磁盘直接读入H2O,它会默认将包含字符串的任何列转换为因子,因此我假设您可能将此帧复制到R < / p>
答案 1 :(得分:0)
一些示例代码:
QCAnalysis_sub_h2o <- h2o.importFile(path = normalizePath("QCAnalysis_sub_h2o.csv"),header=T)
(如果没有,请使用as.data.frame指定数据框)
x和y应该说明你希望h2o.randomforest读取的列