微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用H2o库获取有关GBM模型的数据

如何解决如何使用H2o库获取有关GBM模型的数据

我正在使用GBM模型,并且想与其他机器学习方法进行比较。我跑了五折。据我所知,他们会将数据分成5折,然后选择其中一个进行测试,然后选择其他进行训练。如何从H2o lib的gbm中获取5倍数据?

我使用Python语言运行它。

folds = 5
cars_gbm = H2OGradientBoostingEstimator(nfolds = folds,seed = 1234)

解决方法

有两种方法:

  1. 您可以手动创建和指定折叠。
  2. 您可以通过设置keep_cross_validation_fold_assignment=True来要求H2O保存折叠索引(对于每一行,它属于哪个折叠ID?)并将它们作为单列数据返回。

以下是一些代码示例:

import h2o
from h2o.estimators import *

h2o.init()

# Import cars dataset
cars = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/junit/cars_20mpg.csv")
cars["economy_20mpg"] = cars["economy_20mpg"].asfactor()
x = ["displacement","power","weight","acceleration","year"]
y = "economy_20mpg"
nfolds = 5

第一种方式:

# Create a k-fold column and append to the cars dataset
# Or you can use an existing fold id column
cars["fold_id"] = cars.kfold_column(n_folds=nfolds,seed=1)

# Train a GBM
cars_gbm = H2OGradientBoostingEstimator(seed=1,fold_column = "fold_id",keep_cross_validation_fold_assignment=True)
cars_gbm.train(x=x,y=y,training_frame=cars)

# View the fold ids (identical to cars["fold_id"])
print(cars_gbm.cross_validation_fold_assignment())

第二种方式:

# Train a GBM & save fold IDs
cars_gbm = H2OGradientBoostingEstimator(seed=1,nfolds=nfolds,training_frame=cars)

# View the fold ids
print(cars_gbm.cross_validation_fold_assignment())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。