GASearchCV
|
超参数的进化优化。 |
在具有最佳找到参数的估计器上调用decision_function。 |
|
|
GASearchCV的主要方法,使用给定估计器的超参数启动优化过程 |
|
获取此估计器的参数。 |
|
在具有最佳找到参数的估计器上调用inverse_transform。 |
使用找到的最佳参数在估计器上调用预测。 |
|
使用找到的最佳参数在估计器上调用predict_proba。 |
|
|
如果估计器已重新拟合,则返回给定数据的得分。 |
在具有最佳找到参数的估计器上调用score_samples。 |
|
|
设置此估计器的参数。 |
使用找到的最佳参数在估计器上调用transform方法。 |
- class sklearn_genetic.GASearchCV(estimator, cv=3, param_grid=None, scoring=None, population_size=50, generations=80, crossover_probability=0.2, mutation_probability=0.8, tournament_size=3, elitism=True, verbose=True, keep_top_k=1, criteria='max', algorithm='eaMuPlusLambda', refit=True, n_jobs=1, pre_dispatch='2*n_jobs', error_score=nan, return_train_score=False, log_config=None, use_cache=True, warm_start_configs=None)[源代码]
超参数的进化优化。
GASearchCV实现了"fit"和"score"方法。 如果所使用的estimator中实现了"predict"、"predict_proba"、"decision_function"、 "predict_log_proba"等方法,GASearchCV也会相应实现这些方法。 用于应用这些方法的estimator参数通过交叉验证搜索参数设置进行优化。
- Parameters:
- estimatorestimator object, default=None
实现'fit'方法的estimator对象 用于拟合数据的对象。
- cvint, cross-validation generator or an iterable, default=None
确定交叉验证的分割策略。 cv参数可能的输入包括: - None,使用默认的5折交叉验证, - 整数,指定(Stratified)KFold的折数, - CV分割器, - 可迭代对象,生成(train, test)索引数组的分割。 对于int/None输入,如果估计器是分类器且
y是二分类或多分类,则使用StratifiedKFold。在所有其他情况下,使用KFold。这些分割器的实例化使用shuffle=False,因此多次调用的分割结果将保持一致。- param_griddict, default=None
用于调优的参数网格,要求键名是基于所选估计器的有效超参数名称,值可以是
Integer、Categorical或Continuous类的实例。建议至少提供两个参数才能成功进行优化流程。- population_sizeint, default=10
初始种群的规模,用于随机生成个体样本。
- generationsint, default=40
运行进化算法的代数或迭代次数。
- crossover_probabilityfloat or a Scheduler, default=0.8
两个个体之间进行交叉操作的概率。
- mutation_probabilityfloat or a Scheduler, default=0.1
子代变异的概率。
- tournament_sizeint, default=3
执行锦标赛选择的个体数量。
- elitismbool, default=True
如果为True,则将tournament_size最佳解决方案传递给下一代。
- scoringstr, callable, list, tuple or dict, default=None
用于评估交叉验证模型在测试集上表现的策略。 如果scoring代表单个评分,可以使用:
单个字符串;
一个返回单个值的可调用对象。
如果scoring代表多个分数,可以使用:
一个由唯一字符串组成的列表或元组;
一个可调用对象,返回一个字典,其中键是度量名称,值是度量分数;
一个字典,其中键是度量名称,值是可调用对象。
- n_jobsint, default=None
并行运行的作业数量。训练估计器和计算分数会在交叉验证分割上并行化处理。
None表示默认为1,除非处于joblib.parallel_backend上下文中。-1表示使用所有处理器。- verbosebool, default=True
如果设为
True,将在优化过程中显示评估指标。- keep_top_kint, default=1
保留在hof对象中的最佳解数量。如果回调在k次迭代之前停止算法,则每次迭代仅返回一组参数。
- criteria{‘max’, ‘min’} , default=’max’
max如果评分指标越高越好,min则相反。- algorithm{‘eaMuPlusLambda’, ‘eaMuCommaLambda’, ‘eaSimple’}, default=’eaMuPlusLambda’
使用的进化算法。 更多细节请参阅deap算法文档。
- refitbool, str, or callable, default=True
在整个数据集上使用找到的最佳参数重新拟合估计器。 对于多指标评估,这需要是一个str类型,表示将用于在最后重新拟合估计器时寻找最佳参数的评分器。 重新拟合的估计器可通过
best_estimator_属性获取,并允许直接在此GASearchCV实例上使用predict。 同样对于多指标评估,只有当refit被设置时,属性best_index_、best_score_和best_params_才会可用,且所有这些都将针对此特定评分器确定。 有关多指标评估的更多信息,请参阅scoring参数。如果
False,在拟合后无法使用此GASearchCV实例进行预测。- pre_dispatchint or str, default=’2*n_jobs’
控制在并行执行期间分派的任务数量。当分派的任务数量超过CPU处理能力时,减少此数值有助于避免内存消耗激增。该参数可以是:
无,这种情况下所有任务会立即创建并启动。适用于轻量级且快速执行的任务,以避免因按需启动任务造成的延迟
一个整数,表示生成的总任务数
一个字符串,给出以n_jobs为变量的表达式,例如'2*n_jobs'
- error_score‘raise’ or numeric, default=np.nan
当估计器拟合过程中发生错误时,用于赋值的分数值。 如果设置为
'raise',则会引发错误。 如果给定的是数值,则会引发FitFailedWarning警告。- return_train_score: bool, default=False
如果设为
False,则cv_results_属性将不包含训练分数。 计算训练分数可用于了解不同参数设置如何影响过拟合/欠拟合的权衡。 然而在训练集上计算分数可能计算成本较高,且对于选择能产生最佳泛化性能的参数并非严格必要。- log_config
MLflowConfig, default = None 配置将指标和模型记录到mlflow,如果为None,则不执行mlflow日志记录
- use_cache: bool, default=True
如果设置为true,将避免重新评估已经处理过的解决方案,否则将始终评估解决方案以获取性能指标
- Attributes:
- logbook
DEAP.tools.Logbook 记录每组超参数及其平均评分指标的拟合日志。
- historydict
字典形式如下: {“gen”: [], “fitness”: [], “fitness_std”: [], “fitness_max”: [], “fitness_min”: []}
gen 返回评估世代的索引。 其他列表中的每个条目代表每一代的平均指标。
- cv_results_dict of numpy (masked) ndarrays
一个字典,其键为列标题,值为列数据,可以导入到 pandas 的
DataFrame中。- best_estimator_estimator
通过搜索选择的最佳估计器,即在留出数据上获得最高分的估计器。如果
refit=False则不可用。- best_params_dict
在保留数据上获得最佳结果的参数设置。
- best_index_int
该索引(对应
cv_results_数组)指向最佳候选参数组合。 在search.cv_results_['params'][search.best_index_]处的字典给出了最佳模型的参数设置,该模型能获得最高平均分数(search.best_score_)。- scorer_function or a dict
用于在保留数据上选择模型最佳参数的评分函数。
- n_splits_int
交叉验证的拆分次数(折数/迭代次数)。
- refit_time_float
用于在整个数据集上重新拟合最佳模型的秒数。 仅当
refit不为False时存在。
- logbook
- decision_function(X)
在具有最佳找到参数的估计器上调用decision_function。
仅当
refit=True且底层估计器支持decision_function时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Returns:
- y_scorendarray of shape (n_samples,) or (n_samples, n_classes) or (n_samples, n_classes * (n_classes-1) / 2)
基于找到最佳参数的估计器,对X的决策函数结果。
- fit(X, y, callbacks=None)[源代码]
GASearchCV的主要方法,使用给定估计器的超参数启动优化过程
- Parameters:
- Xarray-like of shape (n_samples, n_features)
要拟合的数据。可以是例如列表或数组。
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
在监督学习场景中需要尝试预测的目标变量。
- callbacks: list or callable
一个或多个可用的回调方法列表,位于
callbacks中。 该回调会在第一代估算器拟合完成后进行评估。
- get_metadata_routing()
获取此对象的元数据路由信息。
请查阅用户指南了解路由机制的工作原理。
在1.4版本中新增。
- Returns:
- routingMetadataRouter
一个封装了路由信息的
MetadataRouter。
- get_params(deep=True)
获取此估计器的参数。
- Parameters:
- deepbool, default=True
如果为True,将返回此估计器及其包含的子估计器对象的参数。
- Returns:
- paramsdict
参数名称与其对应值的映射。
- inverse_transform(X=None, Xt=None)
在具有最佳找到参数的估计器上调用inverse_transform。
仅当底层估计器实现了
inverse_transform且refit=True时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Xtindexable, length n_samples
必须满足底层估计器的输入假设。
自1.5版本起已弃用:Xt在1.5版本中已被弃用,并将在1.7版本中移除。请改用X。
- Returns:
- X{ndarray, sparse matrix} of shape (n_samples, n_features)
基于找到最佳参数的估计器,对Xt应用inverse_transform函数的结果。
- predict(X)
使用找到的最佳参数在估计器上调用预测。
仅当
refit=True且底层估计器支持predict方法时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Returns:
- y_predndarray of shape (n_samples,)
基于找到最佳参数的估计器,对X预测的标签或值。
- predict_log_proba(X)
在具有最佳找到参数的估计器上调用predict_log_proba。
仅当
refit=True且底层估计器支持predict_log_proba时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Returns:
- y_predndarray of shape (n_samples,) or (n_samples, n_classes)
基于找到的最佳参数的估计器,预测X的类别对数概率。类别的顺序与拟合属性classes_中的顺序一致。
- predict_proba(X)
使用找到的最佳参数在估计器上调用predict_proba。
仅在
refit=True且底层估计器支持predict_proba时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Returns:
- y_predndarray of shape (n_samples,) or (n_samples, n_classes)
基于找到最佳参数的估计器,对X预测的类别概率。类别顺序与拟合属性classes_中的顺序一致。
- score(X, y=None, **params)
如果估计器已重新拟合,则返回给定数据的得分。
当提供
scoring时使用其定义的评分标准,否则使用best_estimator_.score方法。- Parameters:
- Xarray-like of shape (n_samples, n_features)
输入数据,其中n_samples表示样本数量, n_features表示特征数量。
- yarray-like of shape (n_samples, n_output) or (n_samples,), default=None
相对于X的分类或回归目标;无监督学习时为None。
- **paramsdict
需要传递给底层评分器的参数。
- ..versionadded:: 1.4
仅当enable_metadata_routing=True时可用。更多详情请参阅元数据路由用户指南。
- Returns:
- scorefloat
如果提供了
scoring定义的分数,则使用该分数;否则使用best_estimator_.score方法。
- score_samples(X)
在具有最佳找到参数的估计器上调用score_samples。
仅当
refit=True且底层估计器支持score_samples时可用。在0.24版本中新增。
- Parameters:
- Xiterable
用于预测的数据。必须满足底层估计器的输入要求。
- Returns:
- y_scorendarray of shape (n_samples,)
best_estimator_.score_samples方法。
- set_fit_request(*, callbacks: bool | None | str = '$UNCHANGED$') GASearchCV
传递给
fit方法的请求元数据。请注意,该方法仅在
enable_metadata_routing=True时适用(参见sklearn.set_config())。 关于路由机制的工作原理,请参阅用户指南。每个参数的可选选项如下:
True: 请求元数据,如果提供了元数据则会传递给fit。如果未提供元数据,则该请求会被忽略。False: 不请求元数据,元估计器不会将其传递给fit。None: 不请求元数据,如果用户提供了元数据,元估计器将报错。str: 元数据应该以这个给定的别名传递给元估计器,而不是原始名称。
默认值(
sklearn.utils.metadata_routing.UNCHANGED)会保留现有请求。这允许您更改某些参数的请求而不影响其他参数。在1.3版本中新增。
注意
该方法仅在当前评估器作为元评估器的子评估器使用时相关,例如在
Pipeline内部使用时。否则该方法无效。- Parameters:
- callbacksstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
fit方法中callbacks参数的元数据路由。
- Returns:
- selfobject
更新后的对象。
- set_params(**params)
设置此估计器的参数。
该方法既适用于简单估计器,也适用于嵌套对象(如
Pipeline)。后者采用<组件>__<参数>形式的参数,从而可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- transform(X)
使用找到的最佳参数在估计器上调用transform方法。
仅当底层估计器支持
transform且refit=True时可用。- Parameters:
- Xindexable, length n_samples
必须满足底层估计器的输入假设。
- Returns:
- Xt{ndarray, sparse matrix} of shape (n_samples, n_features)
X 根据找到最佳参数的估计器转换到新空间后的结果。