MCPcopy
hub / github.com/hyperopt/hyperopt / recommendNextParameters

Method recommendNextParameters

hyperopt/atpe.py:698–1216  ·  view source on GitHub ↗
(
        self, hyperparameterSpace, results, currentTrials, lockedValues=None
    )

Source from the content-addressed store, hash-verified

696 self.atpeParamDetails = None
697
698 def recommendNextParameters(
699 self, hyperparameterSpace, results, currentTrials, lockedValues=None
700 ):
701 rstate = numpy.random.default_rng(seed=int(random.randint(1, 2 ** 32 - 1)))
702
703 params = {"param": {}}
704
705 def sample(parameters):
706 params["param"] = parameters
707 return {"loss": 0.5, "status": "ok"}
708
709 parameters = Hyperparameter(hyperparameterSpace).getFlatParameters()
710
711 if lockedValues is not None:
712 # Remove any locked values from ones the optimizer will examine
713 parameters = list(
714 filter(lambda param: param.name not in lockedValues.keys(), parameters)
715 )
716
717 log10_cardinality = Hyperparameter(hyperparameterSpace).getLog10Cardinality()
718 initializationRounds = max(10, int(log10_cardinality))
719
720 atpeParams = {}
721 atpeParamDetails = {}
722 if (
723 len(list(result for result in results if result["loss"]))
724 < initializationRounds
725 ):
726 atpeParams = {
727 "gamma": 1.0,
728 "nEICandidates": 24,
729 "resultFilteringAgeMultiplier": None,
730 "resultFilteringLossRankMultiplier": None,
731 "resultFilteringMode": "none",
732 "resultFilteringRandomProbability": None,
733 "secondaryCorrelationExponent": 1.0,
734 "secondaryCorrelationMultiplier": None,
735 "secondaryCutoff": 0,
736 "secondarySorting": 0,
737 "secondaryFixedProbability": 0.5,
738 "secondaryLockingMode": "top",
739 "secondaryProbabilityMode": "fixed",
740 "secondaryTopLockingPercentile": 0,
741 }
742 else:
743 # Calculate the statistics for the distribution
744 stats = self.computeAllResultStatistics(hyperparameterSpace, results)
745 stats["num_parameters"] = len(parameters)
746 stats["log10_cardinality"] = Hyperparameter(
747 hyperparameterSpace
748 ).getLog10Cardinality()
749 stats["log10_trial"] = math.log10(len(results))
750 baseVector = []
751
752 for feature in self.atpeModelFeatureKeys:
753 scalingModel = self.featureScalingModels[feature]
754 transformed = scalingModel.transform([[stats[feature]]])[0][0]
755 baseVector.append(transformed)

Callers 1

suggestFunction · 0.95

Calls 11

HyperparameterClass · 0.85
getFlatParametersMethod · 0.80
keysMethod · 0.80
getLog10CardinalityMethod · 0.80
maxMethod · 0.80
createHyperoptSpaceMethod · 0.80
getMethod · 0.80
fminMethod · 0.45

Tested by

no test coverage detected