【发布时间】:2019-07-05 06:20:37
【问题描述】:
起初我认为model_performance(train=True) 给出了在我们训练模型的相同数据上进行预测的性能结果。但事实并非如此,因为该数字必须与model.model_performance(test_data=train) 相同,但事实并非如此。
考虑以下玩具示例:
# Make a dataframe
df = h2o.H2OFrame({'a':list(range(100)), 'b':list(range(100, 0, -1)), 'c':list(range(0, 200, 2))})
# Split the data
train, val, test = df.split_frame([.6, .2], seed=0)
# Build a model
from h2o.estimators.random_forest import H2ORandomForestEstimator
model = H2ORandomForestEstimator(seed=0)
# Train the model
model.train(x=train.names[:-1], y=train.names[-1], training_frame=train, validation_frame=val)
# Get performance results
print(model.model_performance(train=True)['mae']
, model.model_performance(valid=True)['mae']
, model.model_performance(test_data=test)['mae']
)
# 1.3816 1.1968 1.4722
将结果与
进行比较print(model.model_performance(test_data=train)['mae']
, model.model_performance(test_data=val)['mae']
, model.model_performance(test_data=test)['mae']
)
# 0.5548 1.1968 1.4722
注意model_performance(train=True)和model_performance(test_data=train)的结果不同,但model_performance(valid=True)和model_performance(test_data=val)的结果是一样的。
所以我想知道model_performance(train=True)和model.model_performance(test_data=train)是否应该相同(并且在H2O代码中计算有错误),或者model_performance(train=True)的目的是别的。
在docs 它说
train:布尔值,可选
报告模型的训练指标。
有效:布尔值,可选
报告模型的验证指标。
但鉴于上述事实,这还不是很清楚。
【问题讨论】:
标签: python machine-learning h2o