GA特征选择交叉验证
|
用于特征选择的进化优化。 |
在具有最佳发现特征的估计器上调用decision_function。 |
|
|
GAFeatureSelectionCV的主要方法,启动优化流程以寻找最佳特征集 |
|
获取此估计器的参数。 |
逆转转换操作。 |
|
使用找到的最佳特征在估计器上调用预测。 |
|
在具有最佳发现特征的估计器上调用predict_proba方法。 |
|
如果估计器已重新拟合,则返回给定数据的得分。 |
|
|
设置此估计器的参数。 |
将X缩减至所选特征。 |
- class sklearn_genetic.GAFeatureSelectionCV(estimator, cv=3, scoring=None, population_size=50, generations=80, crossover_probability=0.2, mutation_probability=0.8, tournament_size=3, elitism=True, max_features=None, 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)[源代码]
用于特征选择的进化优化。
GAFeatureSelectionCV实现了"fit"和"score"方法。 如果所使用的评估器实现了"predict"、"predict_proba"、"decision_function"、 "predict_log_proba"等方法,它也会相应实现这些方法。 通过优化交叉验证分数和最小化特征数量,可以找到评估器使用的最佳特征(变量)。
- 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,因此多次调用的分割结果将保持一致。- population_sizeint, default=10
初始种群的规模,用于随机生成个体样本。
- generationsint, default=40
运行进化算法的代数或迭代次数。
- crossover_probabilityfloat or a Scheduler, default=0.2
两个个体之间进行交叉操作的概率。
- mutation_probabilityfloat or a Scheduler, default=0.8
子代变异的概率。
- tournament_sizeint, default=3
执行锦标赛选择的个体数量。
- elitismbool, default=True
如果为True,则将tournament_size最佳解决方案传递给下一代。
- max_featuresint, default=None
待选特征数量的上限。
- 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_属性获取,并允许直接在此FeatureSelectionCV实例上使用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_features_list
布尔值列表,每个索引按数据输入顺序对应一个特征。 1表示该特征被选中,0表示该特征被丢弃。
- support_list
所选特征的掩码。
- scorer_function or a dict
用于在保留数据上选择模型最佳参数的评分函数。
- n_splits_int
交叉验证的拆分次数(折数/迭代次数)。
n_features_in_int在fit过程中观察到的特征数量。
- 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)[源代码]
GAFeatureSelectionCV的主要方法,启动优化流程以寻找最佳特征集
- 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中。 该回调会在第一代估算器拟合完成后进行评估。
- fit_transform(X, y=None, **fit_params)
对数据进行拟合,然后转换它。
使用可选参数fit_params将转换器适配到X和y,并返回转换后的X版本。
- Parameters:
- Xarray-like of shape (n_samples, n_features)
输入样本。
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
目标值(无监督转换时为None)。
- **fit_paramsdict
额外的拟合参数。
- Returns:
- X_newndarray array of shape (n_samples, n_features_new)
转换后的数组。
- get_feature_names_out(input_features=None)
根据选定的特征对特征名称进行掩码处理。
- Parameters:
- input_featuresarray-like of str or None, default=None
输入特征。
如果input_features为None,则使用feature_names_in_作为输入特征名。如果未定义feature_names_in_,则会生成以下默认特征名:[“x0”, “x1”, …, “x(n_features_in_ - 1)”]。
如果 input_features 是类数组对象,那么当定义了 feature_names_in_ 时,input_features 必须与 feature_names_in_ 相匹配。
- Returns:
- feature_names_outndarray of str objects
转换后的特征名称。
- get_metadata_routing()
获取此对象的元数据路由信息。
请查阅用户指南了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
一个封装了路由信息的
MetadataRequest。
- get_params(deep=True)
获取此估计器的参数。
- Parameters:
- deepbool, default=True
如果为True,将返回此估计器及其包含的子估计器对象的参数。
- Returns:
- paramsdict
参数名称与其对应值的映射。
- get_support(indices=False)
获取所选特征的掩码或整数索引。
- Parameters:
- indicesbool, default=False
如果为True,返回值将是一个整数数组,而非布尔掩码。
- Returns:
- supportarray
一个从特征向量中选择保留特征的索引。 如果indices为False,则这是一个形状为[#输入特征]的布尔数组,其中元素为True当且仅当其对应的特征被选中保留。如果indices为True,则这是一个形状为[#输出特征]的整型数组,其值是输入特征向量的索引。
- inverse_transform(X)
逆转转换操作。
- Parameters:
- Xarray of shape [n_samples, n_selected_features]
输入样本。
- Returns:
- X_rarray of shape [n_samples, n_original_features]
X 插入了零列,这些列所在的位置是特征被
transform()移除的位置。
- predict(X)[源代码]
使用找到的最佳特征在估计器上调用predict方法。 仅当
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)[源代码]
如果估计器已重新拟合,则返回给定数据的评分。 这使用
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。
- Returns:
- scorefloat
如果提供了
scoring定义的分数,则使用该分数;否则使用best_estimator_.score方法。
- set_fit_request(*, callbacks: bool | None | str = '$UNCHANGED$') GAFeatureSelectionCV
传递给
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_output(*, transform=None)
设置输出容器。
查看sphx_glr_auto_examples_miscellaneous_plot_set_output.py 获取关于如何使用该API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, default=None
配置transform和fit_transform的输出。
“default”: 转换器的默认输出格式
“pandas”: 数据框输出
“polars”: Polars输出
None: 转换配置保持不变
1.4版本新增功能:“polars”选项已添加。
- Returns:
- selfestimator instance
估计器实例。
- set_params(**params)
设置此估计器的参数。
该方法既适用于简单估计器,也适用于嵌套对象(如
Pipeline)。后者采用<组件>__<参数>形式的参数,从而可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- transform(X)
将X缩减至所选特征。
- Parameters:
- Xarray of shape [n_samples, n_features]
输入样本。
- Returns:
- X_rarray of shape [n_samples, n_selected_features]
仅包含所选特征的输入样本。