(注意:这与我在H2O (open source) for K-mean clustering之前发布的一个问题有关)
我将K-Means用于我们大约100个特征的数据集(其中一些是时间戳)
(1)我检查了“OUTPUT- CLUSTER MEANS”部分,时间戳字段的值类似于“1.4144556086883196e+22”。我们的时间戳文件是关于2018年的数据,2018年的Unix时间类似于“1541092918000”。因此,它不可能是那么大的数字“1.4144556086883196e+22”。我对“输出-聚类均值”部分中的数字的理解应该接近原始数据(标准化之前)。对吧?
(2)关于标准化,您能不能用这个例子https://github.com/h2oai/h2o-3/blob/master/h2o-genmodel/src/test/resources/hex/genmodel/algos/kmeans/model.ini#L21-L27,告诉我输入的数据是如何转换成标准化值的?比方说,我有一个原始的值向量( a,b,c,d,1.8 ),我只保留最后一个元素,而忽略其他元素。我如何知道它是否接近下面这个例子中的中心2。你能告诉我H2O是如何使用standardize_means,standardize_mults和standardize_modes转换原始数据的吗?我确信H2O有办法从模型输出中计算出标准化值,但我找不到位置和公式。center_2 = 2.0,0.0,-0.5466317772145349,0.04096506994984166,2.1628815416218337
谢谢。
发布于 2019-01-24 05:38:17
1)我不确定你在Flow中看到的时间戳在哪里,或者你的意思是你的数据集包含H2O-3已经转换的时间戳。无论哪种方式,听起来你可能遇到了一个bug。您在H2O-3中看到的时间戳是从Unix时代开始的毫秒,所以在使用unix时间转换器之前,您必须除以1000 (例如,您可以使用https://currentmillis.com/)。但是,考虑到这个数字如此之大,我倾向于使用一个bug --你可以提供的任何代码都可以让它重现。
1a)当您检查流中的standardize时,除了“输出集群均值”(这不是标准化的)之外,您将看到“输出标准化的集群均值”,因此非标准化的输出应该反映您输入的单位。
2) H2O-3中的标准化描述为here (它说:“标准化数值列,使其具有零均值和单位方差。")。您提供的链接指向一个用于测试的模型,该模型已保存为MOJO,我不确定将其用作示例是否有意义。但一般而言,h2o-3的标准化工作方式是定义为标准化。
https://stackoverflow.com/questions/54299526
复制相似问题