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)
部分。- 参数
- 估计器估计器对象。
每个初始超参数组合都会实例化该类型的一个对象。假设这实现了 scikit-learn 估计器接口。估计器需要提供一个 score 函数,或者必须传递 scoring。估计器必须实现 partial_fit、set_params,并且能够与 clone 良好配合。
- 参数dict
包含参数名称(字符串)作为键和要尝试的分布或参数列表的字典。分布必须提供用于采样的
rvs
方法(例如来自 scipy.stats.distributions 的那些)。如果给定一个列表,则均匀采样。- n_initial_parametersint, 默认=10
采样的参数设置数量。这需要在运行时间和解决方案质量之间进行权衡。
或者,您可以将此设置为
"grid"
以进行完整的网格搜索。- 耐心int, 默认 False
如果指定,当分数在
patience
次调用partial_fit
后没有增加tol
时,训练将停止。默认关闭。- fits_per_scoresint, 可选, 默认=1
如果使用
patience
,则在score
调用之间partial_fit
调用的最大次数。- 每次拟合的分数int, 默认值为 1
如果使用
patience
,则在score
调用之间partial_fit
调用的最大次数。- tolfloat, 默认值 0.001
考虑停止对该模型训练所需的改进水平。最新分数必须最多比该模型的所有先前
patience
分数好tol
。增加tol
往往会减少训练时间,但代价是模型性能更差。- max_iterint, 默认 100
每个模型的部分拟合调用最大次数。
- test_size浮动
用于计算测试分数的数据集部分。默认为输入训练集单个分区的尺寸。
备注
训练数据集应能适应单台机器的内存。根据需要调整
test_size
参数以实现这一点。- random_stateint, RandomState 实例或 None, 可选, 默认: None
如果为整数,random_state 是随机数生成器使用的种子;如果为 RandomState 实例,random_state 是随机数生成器;如果为 None,随机数生成器是 np.random 使用的 RandomState 实例。
- 评分字符串, 可调用对象, 列表/元组, 字典 或 None, 默认: None
一个单一的字符串(参见 The scoring parameter: defining model evaluation rules)或一个可调用的对象(参见 Defining your scoring strategy from metric functions),用于评估测试集上的预测。
对于评估多个指标,可以提供一个字符串列表(唯一)或一个字典,其中键为名称,值为可调用对象。
注意,当使用自定义评分器时,每个评分器应返回一个单一值。返回值列表/数组的度量函数可以包装成多个评分器,每个评分器返回一个值。
参见 Specifying multiple metrics for evaluation 示例。
如果为 None,则使用估计器的默认评分器(如果可用)。
- 详细bool, float, int, optional, default: False
如果为 False(默认),则不打印日志(或将它们输出到标准输出)。但是,标准日志记录仍将被使用。
如果为真,则打印日志并使用标准日志记录。
如果是浮点数,则大约在
verbose
的时间比例内打印/记录。- 前缀str, 可选, 默认=””
在记录日志时,为每条消息添加
prefix
。- 衰减率float, 默认值 1.0
如何快速减少部分未来拟合调用的次数。较高的 decay_rate 会导致更低的训练时间,但会以模型性能下降为代价。
默认的
decay_rate=1.0
被选择是因为它有一些理论动机 [1]。
- 属性
- cv_results_
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_字典列表的字典
每个模型的历史记录字典。这是对
history_
的重新组织:相同的信息存在,但按模型组织。此数据具有
{model_id: hist}
结构,其中hist
是history_
的子集,而model_id
是模型标识符。- 历史_字典列表
每次调用
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_浮动
在最终调用
partial_fit
后,best_estimator_
在验证集上取得的分数。- 最佳索引_整数
指示
cv_results_
中哪个估计器对应于最高分数的索引。- best_params_dict
在保留数据上找到的最佳参数的字典。
- 评分器_
用于评分模型的函数,其调用签名是
scorer_(estimator, X, y)
。- n_splits_整数
交叉验证的分割次数。
- multimetric_布尔
此交叉验证搜索是否使用多个指标。
- cv_results_
注释
当
decay_rate==1
时,此类近似于SuccessiveHalvingSearchCV
执行的partial_fit
调用次数。如果n_initial_parameters
与decay_rate=1
正确配置,此类可能会反映HyperbandSearchCV
中最激进的括号。这可能会产生好的结果和/或找到好的模型,但未经测试。参考文献
- 1
Li, L., Jamieson, K., DeSalvo, G., Rostamizadeh, A., & Talwalkar, A. (2017). Hyperband: 一种基于强盗算法的新型超参数优化方法。机器学习研究杂志, 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