从水模型对象获取模型详细信息

2024-10-01 07:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当简单的问题,但没有找到一个文件化的解决方案。在

我目前正在构建一个有水模型的管道,作为过程的一部分,我需要将每个经过训练的模型的一些基本信息写到一个表中。在

假设我有这样的东西:

model = H2ODeepLearningEstimator(...)
model.train(...)

完成此操作后,我想从model对象中提取模型的类型。一、 e,我要找的是:

^{pr2}$

然后返回一个字符串"H2ODeepLearningEstimator"或等效的"deeplearning",H2O似乎在内部使用它作为模型类型标识符。我还想了解其他细节,比如它是回归模型还是分类模型。我看不到这个信息公开的参数。在

例如,如果我运行model.save_model_details,我得到:

H2ODeepLearningEstimator :  Deep Learning
Model Key:  Grid_DeepLearning_py_4_sid_a02a_model_python_1502450758585_2_model_0


ModelMetricsRegression: deeplearning
** Reported on train data. **

MSE: 19.5334650304
RMSE: 4.4196679774
MAE: 1.44489752843
RMSLE: NaN
Mean Residual Deviance: 19.5334650304

ModelMetricsRegression: deeplearning
** Reported on validation data. **
...
...

大概是model.save_model_details根据各个参数建立这个摘要。我想通过model对象直接访问这些(和类似的)参数(对于性能指标,这可以通过model.mse()model.mae()等来实现)


Tags: 对象模型信息类型data参数modelon
3条回答

h2o.algo为您提供模型类型。至于回归或分类,我不太清楚,但这是他们的地方。查看flow,因为它更容易看到参数名为他们或do模型。一直滚动直到你看到一个看起来可能有它的东西。在

您可以根据培训和/或验证数据获取模型的一些单独模型度量。以下是代码片段:

import h2o
h2o.init(strict_version_check= False , port = 54345)
from h2o.estimators.deeplearning import H2ODeepLearningEstimator
model = H2ODeepLearningEstimator()
rows = [[1,2,3,4,0], [2,1,2,4,1], [2,1,4,2,1], [0,1,2,34,1], [2,3,4,1,0]] * 50
fr = h2o.H2OFrame(rows)
X = fr.col_names[0:4]

## Classification Model
fr[4] = fr[4].asfactor()
model.train(x=X, y="C5", training_frame=fr)
print('Model Type:', model.type)
print('logloss', model.logloss(valid = False))
print('Accuracy', model.accuracy(valid = False))
print('AUC', model.auc(valid = False))
print('R2', model.r2(valid = False))
print('RMSE', model.rmse(valid = False))
print('Error', model.error(valid = False))
print('MCC', model.mcc(valid = False))

## Regression Model
fr = h2o.H2OFrame(rows)
model.train(x=X, y="C5", training_frame=fr)
print('Model Type:', model.type)
print('R2', model.r2(valid = False))
print('RMSE', model.rmse(valid = False))

注意:由于我没有通过验证框架,所以我设置valid=False来获取培训指标。如果您通过了验证指标,那么您可以设置valid=True来获取验证指标。在

如果您想查看模型对象内部是什么,可以查看json对象,如下所示:

^{pr2}$

模型类型存储在model.type()中。在

您可以通过在IPython终端中输入model.然后输入tab键来查看模型的所有方法。它们是按字母顺序打印的,这是查找所需内容的好方法(即使您不知道确切的方法名)。您也可以在Python Module documentation中搜索“type”,并且您也可以通过这种方式找到它。在

示例:

import h2o
from h2o.estimators.gbm import H2OGradientBoostingEstimator
h2o.init()

# Import a sample binary outcome train/test set into H2O
train = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv")
test = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_test_5k.csv")

# Identify predictors and response
x = train.columns
y = "response"
x.remove(y)

# For binary classification, response should be a factor
train[y] = train[y].asfactor()
test[y] = test[y].asfactor() 

# Train a GBM
model = H2OGradientBoostingEstimator(distribution="bernoulli", seed=1)
model.train(x=x, y=y, training_frame=train)

检查型号:

^{pr2}$

相关问题 更多 >