參數取樣器#
- 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