dask_ml.model_selection.InverseDecaySearchCV
dask_ml.model_selection
.InverseDecaySearchCV¶
- class dask_ml.model_selection.InverseDecaySearchCV(estimator, parameters, n_initial_parameters=10, test_size=None, patience=False, tol=0.001, fits_per_score=1, max_iter=100, random_state=None, scoring=None, verbose=False, prefix='', decay_rate=1.0)¶
对支持 partial_fit 的模型进行增量超参数搜索
这种增量超参数优化类通过在少量数据上训练许多超参数组合,然后只继续训练那些性能似乎更好的模型。
该类将随着时间衰减参数的数量。在时间步长
k
时,该类将保留1 / (k + 1)
比例的最高性能模型。- 参数
- estimator估计器对象。
对于每种初始超参数组合,都会实例化该类型的对象。假定此对象实现了 scikit-learn 估计器接口。估计器需要提供一个 score` 函数,或者必须传递
scoring
参数。估计器必须实现partial_fit
、set_params
,并且与clone
良好兼容。- parametersdict
字典,键是参数名称(字符串),值是参数分布或要尝试的参数列表。分布必须提供一个用于抽样的
rvs
方法(例如 scipy.stats.distributions 中的分布)。如果给定列表,则进行均匀抽样。- n_initial_parametersint, 默认值=10
抽样的参数设置数量。这权衡了运行时与解决方案质量。
或者,您可以将其设置为
"grid"
以执行完整的网格搜索。- patienceint, 默认值 False
如果指定,当在
patience
次partial_fit
调用后分数未提高tol
时,训练停止。默认关闭。- fits_per_scoresint, 可选, 默认值=1
如果使用
patience
,则在score
调用之间的最大partial_fit
调用次数。- scores_per_fitint, 默认值 1
如果使用
patience
,则在score
调用之间的最大partial_fit
调用次数。- tolfloat, 默认值 0.001
为考虑停止对该模型进行训练所需的改进水平。对于该模型,最新的分数必须比所有之前的
patience
次分数至多好tol
。增加tol
将倾向于减少训练时间,代价是模型质量变差。- max_iterint, 默认值 100
每个模型的部分拟合调用的最大次数。
- test_sizefloat
用于计算测试分数的保留数据集比例。默认为输入训练集的单个分区的大小
注意
训练数据集应能够放入单台机器的内存中。根据需要调整
test_size
参数以实现此目的。- random_stateint, RandomState 实例或 None, 可选, 默认值: None
如果是 int,random_state 是随机数生成器使用的种子;如果是 RandomState 实例,random_state 是随机数生成器;如果是 None,则随机数生成器是 np.random 使用的 RandomState 实例。
- scoringstring, callable, list/tuple, dict 或 None, 默认值: None
单个字符串(参见 评分参数:定义模型评估规则)或一个可调用对象(参见 scoring)用于评估测试集上的预测。
对于评估多个指标,请提供一个(唯一的)字符串列表或一个以名称为键,以可调用对象为值的字典。
请注意,在使用自定义评分器时,每个评分器应返回一个单个值。返回列表/数组值的指标函数可以包装成多个每个返回一个值的评分器。
有关示例,请参见 为评估指定多个指标。
如果为 None,则使用估计器的默认评分器(如果可用)。
- verbosebool, float, int, 可选, 默认值: False
如果为 False(默认值),则不打印日志(或将其输出到标准输出)。但是,标准日志记录仍将使用。
如果为 True,则打印日志并使用标准日志记录。
如果为 float,则大约
verbose
比例的时间会打印/记录。- prefixstr, 可选, 默认值=""
日志记录时,在每条消息前添加
prefix
。- decay_ratefloat, 默认值 1.0
减少部分未来拟合调用次数的速度。较高的 decay_rate 将导致较低的训练时间,代价是模型质量变差。
选择默认值
decay_rate=1.0
是因为它有一些理论基础 [1]。
- 属性
- cv_results_dict of np.ndarrays
此字典包含键:
mean_partial_fit_time
mean_score_time
std_partial_fit_time
std_score_time
test_score
rank_test_score
model_id
partial_fit_calls
params
param_{key}
,其中key
是params
中的所有键。
test_score
键中的值对应于模型在保留数据集上获得的最后分数。model_id
键对应于history_
。此字典可以导入到 Pandas 中。- model_history_dict of lists of dict
每个模型历史的字典。这是对
history_
的重新组织:包含相同的信息,但按模型组织。此数据结构为
{model_id: hist}
,其中hist
是history_
的子集,model_id
是模型标识符。- history_list of dicts
每次
partial_fit
调用后关于每个模型的信息。每个字典包含键:partial_fit_time
score_time
score
model_id
params
partial_fit_calls
elapsed_wall_time
model_id
键对应于cv_results_
中的model_id
。此字典列表可以导入到 Pandas 中。- best_estimator_BaseEstimator
在“逆衰减”算法保留的所有模型中,验证分数最高的模型。
- best_score_float
best_estimator_
在最后一次partial_fit
调用后在验证集上获得的分数。- best_index_int
指示
cv_results_
中哪个估计器对应于最高分数的索引。- best_params_dict
在保留数据上找到的最佳参数字典。
- scorer_
用于对模型评分的函数,其调用签名为
scorer_(estimator, X, y)
。- n_splits_int
交叉验证分割的数量。
- multimetric_bool
此交叉验证搜索是否使用多个指标。
备注
当
decay_rate==1
时,此类近似于SuccessiveHalvingSearchCV
执行的partial_fit
调用次数。如果使用decay_rate=1
并正确配置n_initial_parameters
,此类可能会模拟HyperbandSearchCV
中最具侵略性的“括号”(bracket)。这可能会产生好的结果和/或找到好的模型,但尚未经过测试。参考文献
- 1
Li, L., Jamieson, K., DeSalvo, G., Rostamizadeh, A., & Talwalkar, A. (2017). Hyperband: A novel bandit-based approach to hyperparameter optimization. The Journal of Machine Learning Research, 18(1), 6765-6816. http://www.jmlr.org/papers/volume18/16-558/16-558.pdf
方法
decision_function
(X)fit
(X[, y])为特定模型找到最佳参数。
get_metadata_routing
()获取此对象的元数据路由。
get_params
([deep])获取此估计器的参数。
inverse_transform
(Xt)predict
(X)对 X 进行预测。
predict_log_proba
(X)概率估计的对数。
predict_proba
(X)概率估计。
score
(X[, y])返回给定数据上的分数。
set_params
(**params)设置此估计器的参数。
set_score_request
(*[, compute])请求传递给
score
方法的元数据。transform
(X)对 Dask 输入按块或按分区进行转换。
partial_fit
- __init__(estimator, parameters, n_initial_parameters=10, test_size=None, patience=False, tol=0.001, fits_per_score=1, max_iter=100, random_state=None, scoring=None, verbose=False, prefix='', decay_rate=1.0)¶