我想预测响应变量,它有700个类 .
深度学习模型参数
from h2o.estimators import deeplearning
dl_model = deeplearning.H2ODeepLearningEstimator(
hidden=[200,200],
epochs = 10,
missing_values_handling='MeanImputation',
max_categorical_features=4,
distribution='multinomial'
)
# Train the model
dl_model.train(x = Content_vecs.names,
y='tags',
training_frame = data_split[0],
validation_frame = data_split[1]
)
Orginal Response Variable -Tags:
apps, email, mail
finance,freelancers,contractors,zen99
genomes
gogovan
brazil,china,cloudflare
hauling,service,moving
ferguson,crowdfunding,beacon
cms,naytev
y,combinator
in,store,
conversion,logic,ad,attribution
Response variable tags:
[74]
[156, 89]
[153, 13, 133, 40]
[150]
[474, 277, 113]
[181, 117]
[15, 87, 8, 11]
错误:
OSError:使用键$ 03017f00000132d4ffffffff $ _8355bcac0e9e98a86257f45c180e4898的作业失败并出现异常:java.lang.UnsupportedOperationException:无法计算错误:类太多
stacktrace:java.lang.UnsupportedOperationException:无法计算错误:hex.ConfusionMatrix.err上的类太多(ConfusionMatrix.java:92)
但是在h2o-core / src / main / java / hex / ConfusionMatrix.javaConfusionMatrix.java中写道它可以计算1000个类 .
1 回答
当你说你有700个类时,你的意思是你的响应变量是由这700个唯一数字的数组组成的吗?因为你举了这个例子:
H2O无法预测数组 . 每个唯一的数字组合将计为一个单独的类 . 因此,从H2O的角度来看,你可能会有超过700个课程 .
如果您查看Flow上的数据(http://127.0.0.1:54321/),它将告诉您'tags'中有多少个唯一级别 . (你也可以从python API中获取它,在框架上使用
describe()
,或者相关列上的categories()
将列出所有级别 . )你的下一个问题是如何做到这一点 . 我建议你做一个新问题,在那里解释700个值和数组所代表的含义;它几乎肯定会涉及一些特定领域的预处理 . 不过你可以试试
categorical_encoding
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html