我想预测响应变量,它有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_encoding
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html