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_fitset_params,并且与 clone 良好兼容。

parametersdict

字典,键是参数名称(字符串),值是参数分布或要尝试的参数列表。分布必须提供一个用于抽样的 rvs 方法(例如 scipy.stats.distributions 中的分布)。如果给定列表,则进行均匀抽样。

n_initial_parametersint, 默认值=10

抽样的参数设置数量。这权衡了运行时与解决方案质量。

或者,您可以将其设置为 "grid" 以执行完整的网格搜索。

patienceint, 默认值 False

如果指定,当在 patiencepartial_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},其中 keyparams 中的所有键。

test_score 键中的值对应于模型在保留数据集上获得的最后分数。model_id 键对应于 history_。此字典可以导入到 Pandas 中。

model_history_dict of lists of dict

每个模型历史的字典。这是对 history_ 的重新组织:包含相同的信息,但按模型组织。

此数据结构为 {model_id: hist},其中 histhistory_ 的子集,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)