參數取樣器#

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

從給定的分佈中取樣的參數產生器。

超參數搜尋的隨機候選組合的非決定性可迭代物件。如果所有參數都以列表形式呈現,則執行不放回取樣。如果至少有一個參數以分佈形式給出,則使用放回取樣。 強烈建議對連續參數使用連續分佈。

請參閱使用者指南中更詳細的內容。

參數:
param_distributionsdict

字典,以參數名稱 (str) 作為鍵,並以分佈或要嘗試的參數列表作為值。分佈必須提供一個 rvs 方法進行取樣(例如來自 scipy.stats.distributions 的方法)。如果給定一個列表,則會均勻取樣。 如果給定字典列表,則首先均勻取樣一個字典,然後如上所述使用該字典取樣參數。

n_iterint

產生的參數設定數量。

random_stateint、RandomState 實例或 None,預設值=None

用於從可能值的列表中隨機均勻取樣的虛擬亂數產生器狀態,而不是 scipy.stats 分佈。 傳遞一個 int 以便在多個函數呼叫中產生可重現的輸出。請參閱詞彙表

回傳:
paramsstr 到任何的字典

Yields 將每個估算器參數對應到取樣值的字典。

範例

>>> 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