Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
H2O Python API:从GridSearch检索最佳模型_Python_H2o - Fatal编程技术网

H2O Python API:从GridSearch检索最佳模型

H2O Python API:从GridSearch检索最佳模型,python,h2o,Python,H2o,我正在使用Python API使用H2O执行GridSearch,代码如下: from h2o.estimators.random_forest import H2ORandomForestEstimator from h2o.grid import H2OGridSearch hyper_parameters = {'ntrees':[10, 50, 100, 200], 'max_depth':[5, 10, 15, 20, 25], 'balance_classes':[True, Fa

我正在使用Python API使用H2O执行GridSearch,代码如下:

from h2o.estimators.random_forest import H2ORandomForestEstimator
from h2o.grid import H2OGridSearch

hyper_parameters = {'ntrees':[10, 50, 100, 200], 'max_depth':[5, 10, 15, 20, 25], 'balance_classes':[True, False]}

search_criteria = {
    "strategy": "RandomDiscrete",
    "max_runtime_secs": 600,
    "max_models": 30,
    "stopping_metric": 'AUTO',
    "stopping_tolerance": 0.0001,
    'seed': 42
}

grid_search = H2OGridSearch(H2ORandomForestEstimator, hyper_parameters, search_criteria=search_criteria)
grid_search.train(x=events_names_x, 
                  y="total_rsvps", 
                  training_frame=train,
                  validation_frame=test)
一旦运行,我想打印模型并按
AUC
的顺序进行预测

grid_search.sort_by('auc', False)
我得到以下错误

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-272-b250bf2b838e> in <module>()
----> 1 grid_search.sort_by('auc', False)

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in sort_by(self, metric, increasing)
    663 
    664         if metric[-1] != ')': metric += '()'
--> 665         c_values = [list(x) for x in zip(*sorted(eval('self.' + metric + '.items()'), key=lambda k_v: k_v[1]))]
    666         c_values.insert(1, [self.get_hyperparams(model_id, display=False) for model_id in c_values[0]])
    667         if not increasing:

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in <module>()

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in auc(self, train, valid, xval)
    606         :return: The AUC.
    607         """
--> 608         return {model.model_id: model.auc(train, valid, xval) for model in self.models}
    609 
    610     def aic(self, train=False, valid=False, xval=False):

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in <dictcomp>(.0)
    606         :return: The AUC.
    607         """
--> 608         return {model.model_id: model.auc(train, valid, xval) for model in self.models}
    609 
    610     def aic(self, train=False, valid=False, xval=False):

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/model/model_base.py in auc(self, train, valid, xval)
    669         tm = ModelBase._get_metrics(self, train, valid, xval)
    670         m = {}
--> 671         for k, v in viewitems(tm): m[k] = None if v is None else v.auc()
    672         return list(m.values())[0] if len(m) == 1 else m
    673 

/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/model/metrics_base.py in auc(self)
    158         :return: Retrieve the AUC for this set of metrics.
    159         """
--> 160         return self._metric_json['AUC']
    161 
    162     def aic(self):

KeyError: 'AUC'
---------------------------------------------------------------------------
KeyError回溯(最近一次呼叫最后一次)
在()
---->1网格搜索。按('auc',False)排序
/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid\u search.py按排序方式(自、公制、递增)
663
664如果度量[-1]!=')':公制+='()'
-->665 c_值=[zip中x的列表(x)(*已排序(eval('self.'+metric+'.items()),key=lambda k_v:k_v[1])]
666 c_值。插入(1,[self.get_超参数(model_id,display=False),用于c_值[0]]中的model_id)
667如果不增加:
/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in()
/auc中的Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py(self、train、valid、xval)
606:返回:AUC。
607         """
-->608返回{model.model_id:model.auc(train,valid,xval),用于self.models}中的模型
609
610 def aic(自身、序列=假、有效=假、xval=假):
/Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/grid/grid_search.py in(.0)
606:返回:AUC。
607         """
-->608返回{model.model_id:model.auc(train,valid,xval),用于self.models}中的模型
609
610 def aic(自身、序列=假、有效=假、xval=假):
/auc中的Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/model/model_base.py(self、train、valid、xval)
669 tm=模型库。获取度量(自我、训练、有效、xval)
670 m={}
-->671对于k,viewitems(tm)中的v:m[k]=如果v是None-else v.auc()则为None
672如果len(m)=1,则返回列表(m.values())[0]
673
/auc中的Users/stereo/.pyenv/versions/3.5.2/lib/python3.5/site-packages/h2o/model/metrics_base.py(self)
158:return:检索这组度量的AUC。
159         """
-->160返回自度量json['AUC']
161
162 def aic(自身):
KeyError:'AUC'
任何关于以下方面的建议:

  • 可以按性能顺序打印模型
  • 使用AUC最高的模型进行预测
    • 你需要的是

      sorted\u grid=grid\u search.get\u grid(sort\u by='auc',discreating=True)
      打印(已排序的网格)
      

      如果您愿意,可以将递减更改为False

      sorted\u grid=grid\u search.get\u grid(sort\u by='auc',discreating=True)
      打印(已排序的网格)
      


      如果您希望

      的话,您可以将递减改为False,因此显然不再支持
      auc
      ,因此必须执行
      mse
      r2
      。不过感谢您的建议!我们是否可以以某种方式将这些结果导出到文件中?只要您正在处理二进制分类问题,就应该支持auc,请确保您的target变量是一个带有
      .asfactor()
      的枚举(您可以在h2o用户guid中找到示例)。我不认为您可以将网格搜索对象导出为表,但您可以从网格搜索表(h2o.get_model(“”)中获取单个模型的信息,然后将这些结果的一部分导出到文件(任何类型为H2OFrame的文件)因此,
      auc
      显然不再受支持,因此必须执行
      mse
      r2
      操作。不过,感谢您的建议!我们可以以某种方式将这些结果导出到文件中吗?只要您在处理二进制分类问题,就应该支持auc,请确保您的目标变量是带有
      .asfactor()的枚举(您可以在h2o用户guid中找到示例)。我不认为您可以将网格搜索对象导出为表,但您可以从网格搜索表(h2o.get_model(“”)中获取单个模型的信息,然后将部分结果导出到文件(任何类型为H2OFrame的文件)