ParameterSampler#

class sklearn.model_selection.ParameterSampler(param_distributions, n_iter, *, random_state=None)[source]#

Generator für aus gegebenen Verteilungen abgetastete Parameter.

Nicht-deterministische iterierbare Objekt über zufällige Kandidatenkombinationen für die Hyperparameter-Suche. Wenn alle Parameter als Liste dargestellt werden, wird eine Stichprobe ohne Zurücklegen durchgeführt. Wenn mindestens ein Parameter als Verteilung angegeben ist, wird eine Stichprobe mit Zurücklegen verwendet. Es wird dringend empfohlen, kontinuierliche Verteilungen für kontinuierliche Parameter zu verwenden.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
param_distributionsdict

Wörterbuch mit Parameternamen (str) als Schlüssel und Verteilungen oder Listen von Parametern zum Ausprobieren. Verteilungen müssen eine rvs Methode zur Stichprobenziehung bereitstellen (wie z. B. die von scipy.stats.distributions). Wenn eine Liste angegeben wird, wird sie gleichmäßig gezogen. Wenn eine Liste von Dictionaries angegeben wird, wird zuerst ein Dictionary gleichmäßig gezogen und dann ein Parameter unter Verwendung dieses Dictionaries wie oben gezogen.

n_iterint

Anzahl der erzeugten Parametersätze.

random_stateint, RandomState-Instanz oder None, default=None

Pseudo-Zufallszahlengenerator-Zustand, der für die zufällige gleichmäßige Stichprobenziehung aus Listen möglicher Werte anstelle von scipy.stats-Verteilungen verwendet wird. Übergeben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Gibt zurück:
paramsdict of str to any

Yields Wörterbücher, die jeden Schätzerparameter einem gezogenen Wert zuordnen.

Beispiele

>>> from sklearn.model_selection import ParameterSampler
>>> from scipy.stats.distributions import expon
>>> import numpy as np
>>> rng = np.random.RandomState(0)
>>> param_grid = {'a':[1, 2], 'b': expon()}
>>> param_list = list(ParameterSampler(param_grid, n_iter=4,
...                                    random_state=rng))
>>> rounded_list = [dict((k, round(v, 6)) for (k, v) in d.items())
...                 for d in param_list]
>>> rounded_list == [{'b': 0.89856, 'a': 1},
...                  {'b': 0.923223, 'a': 1},
...                  {'b': 1.878964, 'a': 2},
...                  {'b': 1.038159, 'a': 2}]
True