H2O深度学习算法接受多少类?



我想预测响应变量,它有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:具有密钥 $03017f00000132d4fff_8355bcac0e9e98a86257f45c180e4898 f

堆栈跟踪: java.lang.UnsupportedOperationException: 无法计算错误: 类太多 在十六进制。ConfusionMatrix.err(ConfusionMatrix.java:92)

但是在h2o-core/src/main/java/hex/ConfusionMatrix.javaConfusionMatrix中.java 写到它可以计算 1000 个类。

当你说你有 700 个类时,你的意思是你的响应变量是由这 700 个唯一数字的数组组成的吗?因为你举了这个例子:

Response variable tags: 
[74]
[156, 89]
[153, 13, 133, 40]
[150]
[474, 277, 113]
[181, 117]
[15, 87, 8, 11]

H2O 无法预测阵列。每个唯一的数字组合将计为一个类。因此,从H2O的角度来看,您可能有700多个课程。

如果您查看 Flow ( http://127.0.0.1:54321/) 上的数据,它会告诉您"标签"中有多少个唯一级别。(您也可以从python API获取它,使用框架上的describe(),或者相关列上的categories()将列出所有级别。

你的下一个问题将是如何处理这个问题。我建议把它作为一个新问题,你解释 700 个值和数组代表什么;几乎可以肯定的是,这将涉及一些特定于领域的预处理。但是,您可以尝试玩categorical_encodinghttp://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html

相关内容

  • 没有找到相关文章

最新更新