Python H2O中的GLRM-性能指标返回NaN

Python H2O中的GLRM-性能指标返回NaN,python,h2o,h2o.ai,Python,H2o,H2o.ai,我使用一个广义低秩估计器来推断数据集中关于传感器读数的缺失值。我正在使用H2O创建和训练模型: glrm=H2OdLowrankestimator(k=10, loss=“quadratic”, 伽马x=0.5, γy=0.5, 最大迭代次数=2000次, recover_svd=True, init=“SVD”, transform=“标准化”) glrm.列车(培训框架=列车) 训练模型后,提供的有关性能指标(MSE和RMSE)的信息都返回NaN。有人知道为什么吗?首先,我认为它可能与数据

我使用一个广义低秩估计器来推断数据集中关于传感器读数的缺失值。我正在使用H2O创建和训练模型:

glrm=H2OdLowrankestimator(k=10,
loss=“quadratic”,
伽马x=0.5,
γy=0.5,
最大迭代次数=2000次,
recover_svd=True,
init=“SVD”,
transform=“标准化”)
glrm.列车(培训框架=列车)
训练模型后,提供的有关性能指标(MSE和RMSE)的信息都返回NaN。有人知道为什么吗?首先,我认为它可能与数据集中的NaN条目有关,但我已经尝试了一个完整的条目,同样的问题也发生了。 我需要这些信息来对一些模型参数执行网格搜索,以选择最佳参数

多谢各位


卢伊萨·诺盖拉(Luísa Nogueira)

下面是一个例子。预计MSE为NaN。最好将其从输出中排除。检查是否获得
平方误差之和(数值)
或使用定义为
二次的损失函数(目标)

返回MSE、RMSE和NaN:

模型细节 ==========H2OGeneralizedLowRankEstimator:广义低阶建模模型键:GLRM_Model_python_1617769810268_1

模型摘要: 迭代次数最终步长大小最终目标值 0 58.0 0 0.00005 8.250804e-31

ModelMetricsGLRM:glrm **列车数据报告**

MSE:NaN RMSE:NaN
误差平方和(数字): 1.9833472629189004e-13
错误分类错误(分类):0.0


很难说原因是什么。您是否有一些可复制的代码和一些虚拟数据,您可以共享给其他人进行复制?如果没有,您可以检查H2O日志,查看培训是否正确完成。预测有什么意义吗?还有其他指标能给出值吗?尼玛,非常感谢你的回答,对吧,这正是我害怕的。这是否意味着我不能使用H2O网格(超参数)搜索?给出了一些度量,即MSE或RMSE,提供了参数的最佳组合。我试图找到最好的低秩(k)和权重γx和γy。你对如何做有什么建议吗?或者我应该亲自尝试一下,比较一下你所说的指标:平方误差之和(数值)和损失函数(目标)?AKAIK,可以进行网格搜索。这些是可以使用的超参数。计划删除MSE/RMSE NaN
import h2o
from h2o.estimators import H2OGeneralizedLowRankEstimator
h2o.init()

# Import the USArrests dataset into H2O:
arrestsH2O = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/pca_test/USArrests.csv")

# Split the dataset into a train and valid set:
train, valid = arrestsH2O.split_frame(ratios=[.8], seed=1234)

# Build and train the model:
glrm_model = H2OGeneralizedLowRankEstimator(k=4,
                                            loss="quadratic",
                                            gamma_x=0.5,
                                            gamma_y=0.5,
                                            max_iterations=700,
                                            recover_svd=True,
                                            init="SVD",
                                            transform="standardize")
glrm_model.train(training_frame=train)