コード例 #1
0
    def tune(self, tune_func, logger=None, type=max):
        """Tune values of parameters

        Items in tuning grid are iteratively passed to `tune_func` and return
        value of this function is used as criterion value.

        It returns optimal value of criterion and points with associated
        criterion value. If `points` is not None, it is used as default
        dictionary for returned points. Points is a dictionary with parameter
        values as keys and criterion value as values. There is a special key
        'header' containing names of parameters.
        """
        grid_keys, grid_values = self._getKeysValues()
        crit = self._criterion

        for i, values in enumerate(grid_values):
            new_values = dict(zip(grid_keys, values))

            old_crit = self.tunedValueFor(new_values)
            if old_crit is not None:
                crit[i] = old_crit
                continue

            if logger is not None:
                self._logDict(logger, 'Setting values of parameters:',
                              new_values)
            crit[i] = tune_func(**new_values)
            if logger is not None:
                logger.info("Criterion value: %s", strnumber(crit[i]))
                logger.info("\n")

        tuned_crit, tuned_values = self.optimum(type)

        if logger is not None:
            self._logTable(logger)
            self._logTuned(logger, tuned_crit, tuned_values)

        return tuned_crit, tuned_values
コード例 #2
0
    def tune(self, tune_func, logger=None, type=max):
        """Tune values of parameters

        Items in tuning grid are iteratively passed to `tune_func` and return
        value of this function is used as criterion value.

        It returns optimal value of criterion and points with associated
        criterion value. If `points` is not None, it is used as default
        dictionary for returned points. Points is a dictionary with parameter
        values as keys and criterion value as values. There is a special key
        'header' containing names of parameters.
        """
        grid_keys, grid_values = self._getKeysValues()
        crit = self._criterion

        for i, values in enumerate(grid_values):
            new_values = dict(zip(grid_keys, values))

            old_crit = self.oldCriterion(new_values)
            if old_crit is not None:
                crit[i] = old_crit
                continue

            if logger is not None:
                self._logDict(logger, 'Setting values of parameters:', new_values)
            crit[i] = tune_func(**new_values)
            if logger is not None:
                logger.info("Criterion value: %s", strnumber(crit[i]))
                logger.info("\n")

        tuned_crit, tuned_values = self.optimum(type)

        if logger is not None:
            self._logTable(logger)
            self._logTuned(logger, tuned_crit, tuned_values)

        return tuned_crit, tuned_values
コード例 #3
0
 def _logDict(self, logger, header, d):
     logger.info(header)
     logger.info("=" * len(header))
     for key, val in d.iteritems():
         logger.info("    %s: %s", key, strnumber(val))
コード例 #4
0
 def _logDict(self, logger, header, d):
     logger.info(header)
     logger.info("="*len(header))
     for key, val in d.iteritems():
         logger.info("    %s: %s", key, strnumber(val))