(注意:这与我之前发布的问题有关 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]
谢谢。
答案 0 :(得分:0)
1)我不确定您在Flow中看到的时间戳,还是您的数据集包含H2O-3转换的时间戳。无论哪种方式,听起来您都可能遇到了错误。您在H2O-3中看到的时间戳是自Unix时代以来的毫秒数,因此在使用unix时间转换器之前,您必须除以1000(例如,可以使用https://currentmillis.com/)。但是再次考虑到这个数目如此之大,我倾向于一个错误-您可以提供任何可重现性的代码都很好。
1a)除“输出-集群平均值”(未标准化)之外,您还在流中检查standardize
时,还会看到“输出-标准化的集群平均值”,因此非标准化输出应反映单位输入的内容。
2)here中描述了H2O-3的标准化(它表示:“标准化数字列以具有零均值和单位方差。”)。您提供的链接指向已保存为MOJO的测试模型,我不确定以示例为例。但是总的来说,h2o-3标准化的工作方式就是定义标准化。