DayF core  1.2.1.2
DayF (Decision at your Fingertips) is an AutoML freeware development framework that let developers works with Machine Learning models without any idea of AI, simply taking a csv dataset and the objective column
h2omodelmetadata.py
1 
4 
5 '''
6 Copyright (C) e2its - All Rights Reserved
7  * Unauthorized copying of this file, via any medium is strictly prohibited
8  * Proprietary and confidential
9  *
10  * This file is part of gDayF project.
11  *
12  * Written by Jose L. Sanchez <e2its.es@gmail.com>, 2016-2019
13 '''
14 
15 from gdayf.models.modelmetadata import ModelMetadata
16 from gdayf.common.constants import *
17 from collections import OrderedDict
18 from time import time
19 
20 
21 
23 
24  def __init__(self, e_c):
25  ModelMetadata.__init__(self, e_c)
26  # @var _config
27  # Initialized _config to h2o all models default values
28  self._optimizable_scale_params = self._config['h2o']['conf']['optimizable_scale_params']
29  self._models = self._config['h2o']['models']
30 
37  def generate_models(self, model_type, atype, amode=POC, increment=1):
38  if atype[0]['type'] == 'binomial':
39  distribution = 'binomial'
40  elif atype[0]['type'] == 'multinomial':
41  distribution = 'multinomial'
42  else:
43  distribution = 'default'
44  ts = round(time(), 0)
45  for each_model in self._models:
46  if each_model['model'] == model_type:
47  for key, value in each_model.items():
48  if key == 'parameters':
49  self.model[key] = OrderedDict()
50  for subkey, subvalue in value.items():
51  if subkey not in ['stopping', 'distribution', 'effort']:
52  for parm, parm_value in subvalue.items():
53  if parm_value['seleccionable']:
54  self.model[key][parm] = parm_value
55  elif subkey == 'stopping':
56  if amode in [POC, FAST, FAST_PARANOIAC]:
57  for parm, parm_value in subvalue.items():
58  if parm_value['seleccionable']:
59  self.model[key][parm] = parm_value
60  elif subkey == 'effort':
61  for parm, parm_value in subvalue.items():
62  if parm_value['seleccionable']:
63  self.model[key][parm] = parm_value
64  if isinstance(self.model[key][parm]['value'], list)\
65  and parm in self._optimizable_scale_params:
66  for counter in range(0, len(self.model[key][parm]['value'])):
67  if model_type != 'H2OAutoEncoderEstimator':
68  self.model[key][parm]['value'][counter] = \
69  int(self.model[key][parm]['value'][counter] * increment)
70  elif self.model[key][parm]['type'] in DTYPES \
71  and parm in self._optimizable_scale_params:
72  if self.model[key][parm]['type'] in ITYPES:
73  self.model[key][parm]['value'] = \
74  int(self.model[key][parm]['value'] * increment)
75  else:
76  self.model[key][parm]['value'] *= increment
77  elif subkey == 'distribution':
78  for parm, parm_value in subvalue.items():
79  if parm_value['seleccionable']:
80  self.model[key][parm] = parm_value
81  if parm == 'family':
82  if distribution in ['binomial', 'multinomial']:
83  self.model[key][parm]['value'] = distribution
84  self.model[key][parm]['type'] = list()
85 
86  elif parm == 'distribution':
87  if distribution == 'binomial':
88  distribution = 'bernoulli'
89  if distribution in ['bernoulli', 'multinomial']:
90  self.model[key][parm]['value'] = distribution
91  self.model[key][parm]['type'] = list()
92  elif key == 'types':
93  self.model[key] = atype
94  else:
95  self.model[key] = value
96  # Fijamos semilla
97  self.model['parameters']['seed']['value'] = int(ts)
98  return self.model
99 
100 
Generate H2O Model base Class and initialize base members.
def generate_models(self, model_type, atype, amode=POC, increment=1)
Generate H2O models This method is used to load config parameters adapting its to specific analysis r...
Define Base Model methods and members on an unified way.
Definition: modelmetadata.py:1
Generate Model base Class and base members.