首页 文章

h2o深度学习算法接受了多少个类?

提问于
浏览
1

我想预测响应变量,它有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 回答

  • 1

    当你说你有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/),它将告诉您'tags'中有多少个唯一级别 . (你也可以从python API中获取它,在框架上使用 describe() ,或者相关列上的 categories() 将列出所有级别 . )

    你的下一个问题是如何做到这一点 . 我建议你做一个新问题,在那里解释700个值和数组所代表的含义;它几乎肯定会涉及一些特定领域的预处理 . 不过你可以试试 categorical_encoding http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html

相关问题