dask_ml.model_selection.SuccessiveHalvingSearchCV
dask_ml.model_selection.SuccessiveHalvingSearchCV¶
- class dask_ml.model_selection.SuccessiveHalvingSearchCV(estimator, parameters, n_initial_parameters=10, n_initial_iter=None, max_iter=None, aggressiveness=3, test_size=None, patience=False, tol=0.001, random_state=None, scoring=None, verbose=False, prefix='')[源代码]¶
执行连续减半算法 [1]。
该算法为一定数量的
partial_fit调用训练估计器,然后淘汰表现最差的一半。它为幸存的估计器训练两倍的时间,并重复此过程,直到一个估计器幸存。上面的 \(1/2\) 的值用于清晰解释。此类默认会淘汰表现最差的
1 - 1 // aggressiveness部分的模型,并对估计器进行aggressiveness倍时长的训练,直到剩余模型的数量小于aggressiveness。- 参数
- 估计器估计器对象。
每个初始超参数组合都会实例化该类型的一个对象。假设它实现了 scikit-learn 估计器接口。估计器需要提供一个
score函数,或者必须传递scoring。估计器必须实现partial_fit、set_params,并且能够与clone良好配合。- 参数dict
包含参数名称(字符串)作为键和要尝试的分布或参数列表的字典。分布必须提供用于采样的
rvs方法(例如来自 scipy.stats.distributions 的那些)。如果给定一个列表,则均匀采样。- 攻击性float, 默认值=3
在剔除不同估计器时的激进程度。较高的值意味着对评分有更高的信心(或者超参数对
estimator.score的影响大于数据)。- n_initial_parametersint, 默认=10
采样的参数设置数量。这需要在运行时间和解决方案质量之间进行权衡。
- n_initial_iter整数
在评分之前最初调用部分拟合的次数。估计器最初会进行
n_initial_iter次partial_fit调用。n_initial_iter的值越高,估计器在做出决策之前训练的时间就越长。关于partial_fit调用次数的元数据在metadata``(和 ``metadata_)中。- max_iterint, 默认 None
每个模型的部分拟合调用最大次数。如果为 None,将允许 SuccessiveHalvingSearchCV 运行直到(大约)一个模型存活。如果指定,当达到
max_iter次partial_fit调用时,模型将停止训练。- test_size浮动
用于计算测试分数的数据集部分。默认为输入训练集单个分区的尺寸。
备注
训练数据集应能适应单台机器的内存。根据需要调整
test_size参数以实现这一点。- 耐心int, 默认 False
如果指定,当分数在
patience次调用partial_fit后没有增加tol时,训练将停止。默认关闭。- tolfloat, 默认值 0.001
考虑停止对该模型训练所需的改进水平。最新分数必须最多比该模型的所有先前
patience分数好tol。增加tol往往会减少训练时间,但代价是模型性能更差。- 评分字符串, 可调用对象, 无。默认值: 无
一个单一的字符串(参见 The scoring parameter: defining model evaluation rules)或一个可调用的对象(参见 Defining your scoring strategy from metric functions),用于评估测试集上的预测。
如果为 None,则使用估计器的默认评分器(如果可用)。
- random_stateint, RandomState 实例或 None, 可选, 默认: None
如果为整数,random_state 是随机数生成器使用的种子;如果为 RandomState 实例,random_state 是随机数生成器;如果为 None,随机数生成器是 np.random 使用的 RandomState 实例。
- 详细bool, float, int, optional, default: False
如果为 False(默认),则不打印日志(或将它们输出到标准输出)。但是,标准日志记录仍将被使用。
如果为真,则打印日志并使用标准日志记录。
如果是浮点数,则大约在
verbose的时间比例内打印/记录。- 前缀str, 可选, 默认=””
在记录日志时,为每条消息添加
prefix。
- 属性
- cv_results_
np.ndarrays的字典 这个字典有键
mean_partial_fit_timemean_score_timestd_partial_fit_timestd_score_timetest_scorerank_test_scoremodel_idpartial_fit_callsparamsparam_{key},其中key是params中的每一个键。
test_score键中的值对应于模型在保留数据集上获得的最后一个分数。键model_id对应于history_。这个字典可以导入到 Pandas 中。- 元数据和元数据_dict[key, int]
描述计算的字典。
metadata描述将要执行的计算,而metadata_描述已经执行的计算。这两个字典都有键。n_models: 本次连续减半运行的模型数量max_iter:partial_fit被调用的最大次数。至少有一个模型会有这么多次partial_fit调用。partial_fit_calls:partial_fit调用的总次数。所有模型总共将接收这么多次partial_fit调用。
当指定
patience时,减少的计算将反映在metadata_中,而不是metadata中。- model_history_字典列表的字典
每个模型的历史记录字典。这是对
history_的重新组织:相同的信息存在,但按模型组织。这些数据具有
{model_id: hist}的结构,其中hist是history_的子集,而model_id是模型标识符。- history_字典列表
每次
partial_fit调用后每个模型的信息。每个字典的键partial_fit_timescore_timescoremodel_idparamspartial_fit_calls
键
model_id对应于cv_results_中的model_id。这个字典列表可以导入到 Pandas 中。- best_estimator_BaseEstimator
在“逆衰减”算法保留的所有模型中,验证分数最高的模型。
- best_score_浮动
在最终调用
partial_fit后,best_estimator_在验证集上取得的分数。- 最佳索引_整数
指示
cv_results_中哪个估计器对应于最高分数的索引。- best_params_dict
在保留数据上找到的最佳参数的字典。
- scorer_
用于评分模型的函数,其调用签名是
scorer_(estimator, X, y)。- n_splits_整数
交叉验证的分割数。
- multimetric_布尔
此交叉验证搜索是否使用多个指标。
- cv_results_
参考文献
- 1
“非随机最佳臂识别和超参数优化”,作者:Jamieson, Kevin 和 Talwalkar, Ameet。2016年。https://arxiv.org/abs/1502.07943
方法
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