添加--特征工程方法和参数
This commit is contained in:
parent
de760a485d
commit
dd8f780fea
133
date_feature/method.yaml
Normal file
133
date_feature/method.yaml
Normal file
@ -0,0 +1,133 @@
|
||||
feature_engineering_methods:
|
||||
|
||||
LabelEncoder:
|
||||
description: "将分类标签转换为数值编码,即每个类别映射为一个整数。"
|
||||
advantages:
|
||||
- "简单直观,适用于有序分类特征。"
|
||||
disadvantages:
|
||||
- "可能引入类别之间的顺序关系,不适用于无序分类特征。"
|
||||
applicable_scenarios:
|
||||
- "适用于有序分类特征,如等级、评分等。"
|
||||
|
||||
KBinsDiscretizer:
|
||||
description: "将连续特征离散化,即将数值特征分桶,转换为离散的整数值或独热编码。"
|
||||
advantages:
|
||||
- "能够捕捉非线性关系,减少模型对异常值的敏感性。"
|
||||
disadvantages:
|
||||
- "可能导致信息损失,选择不当的分桶策略可能影响模型性能。"
|
||||
applicable_scenarios:
|
||||
- "适用于需要将连续特征离散化的场景,如决策树模型中的特征预处理。"
|
||||
|
||||
FunctionTransformer:
|
||||
description: "对特征应用自定义的转换函数,实现灵活的特征变换。"
|
||||
advantages:
|
||||
- "提供高度灵活性,能够实现任意的特征转换。"
|
||||
disadvantages:
|
||||
- "需要用户自行定义转换函数,可能增加实现复杂度。"
|
||||
applicable_scenarios:
|
||||
- "适用于需要自定义特征转换的场景,如对数变换、平方根变换等。"
|
||||
|
||||
PowerTransformer:
|
||||
description: "对特征进行幂变换,使数据更接近正态分布,提高模型性能。"
|
||||
advantages:
|
||||
- "能够稳定方差,减少偏度,使数据更符合正态分布假设。"
|
||||
disadvantages:
|
||||
- "对某些数据可能不适用,且需要注意变换后的数据范围。"
|
||||
applicable_scenarios:
|
||||
- "适用于需要对数据进行正态化处理的场景,如线性回归模型中的特征预处理。"
|
||||
|
||||
QuantileTransformer:
|
||||
description: "对特征进行分位数变换,将数据映射到均匀分布或正态分布。"
|
||||
advantages:
|
||||
- "能够有效处理异常值,消除数据分布的偏态。"
|
||||
disadvantages:
|
||||
- "可能导致数据失真,特别是对于离散型特征。"
|
||||
applicable_scenarios:
|
||||
- "适用于需要将数据转换为特定分布的场景,如提高模型对异常值鲁棒性的应用。"
|
||||
|
||||
FeatureHasher:
|
||||
description: "使用哈希函数将分类特征编码为固定长度的向量,适用于高维稀疏数据。"
|
||||
advantages:
|
||||
- "能够处理高维数据,避免独热编码导致的维度爆炸。"
|
||||
- "计算效率高,适合大规模数据。"
|
||||
disadvantages:
|
||||
- "可能出现哈希冲突,导致信息丢失。"
|
||||
- "无法逆转哈希过程,原始信息不可恢复。"
|
||||
applicable_scenarios:
|
||||
- "适用于文本数据处理,如词袋模型中的特征表示。"
|
||||
- "需要对高维分类特征进行高效编码的场景。"
|
||||
|
||||
DictVectorizer:
|
||||
description: "将符号表示的特征(如字典)转换为稀疏矩阵形式,便于后续模型处理。"
|
||||
advantages:
|
||||
- "直接处理字典格式数据,方便快捷。"
|
||||
- "生成的稀疏矩阵高效存储,节省内存。"
|
||||
disadvantages:
|
||||
- "对于数值型特征,需提前进行适当处理。"
|
||||
- "当特征种类繁多时,可能导致维度过高。"
|
||||
applicable_scenarios:
|
||||
- "处理包含类别型特征的字典格式数据,如从 JSON 文件中读取的数据。"
|
||||
- "需要将符号特征转换为数值特征的场景。"
|
||||
|
||||
PCA:
|
||||
description: "主成分分析,通过线性变换将高维数据投影到低维空间,保留数据的主要信息。"
|
||||
advantages:
|
||||
- "降低数据维度,减少计算成本。"
|
||||
- "消除特征之间的多重共线性,提高模型性能。"
|
||||
disadvantages:
|
||||
- "可能丢失部分信息,影响模型精度。"
|
||||
- "主成分缺乏可解释性,难以理解每个成分的具体含义。"
|
||||
applicable_scenarios:
|
||||
- "高维数据场景,如图像处理、基因数据分析等。"
|
||||
- "需要降维以提高模型训练速度和效果的情况。"
|
||||
|
||||
SelectKBest:
|
||||
description: "根据统计检验方法选择得分最高的 K 个特征,进行特征选择。"
|
||||
advantages:
|
||||
- "简单易用,计算速度快。"
|
||||
- "能够提高模型性能,减少过拟合。"
|
||||
disadvantages:
|
||||
- "独立评估每个特征,未考虑特征之间的关联。"
|
||||
- "需要手动指定 K 值,可能需要多次尝试。"
|
||||
applicable_scenarios:
|
||||
- "初步筛选特征,减少特征数量。"
|
||||
- "需要快速评估特征重要性的场景。"
|
||||
|
||||
RFE:
|
||||
description: "递归特征消除,反复训练模型,删除权重系数最小的特征,直到达到预定的特征数量。"
|
||||
advantages:
|
||||
- "考虑特征之间的交互作用,选择效果较好。"
|
||||
- "能够提高模型的泛化能力,减少过拟合。"
|
||||
disadvantages:
|
||||
- "计算成本高,训练时间长。"
|
||||
- "对模型的选择敏感,不同模型可能导致不同的特征选择结果。"
|
||||
applicable_scenarios:
|
||||
- "特征数量较多,需要筛选出重要特征的情况。"
|
||||
- "对模型性能要求较高,愿意投入更多计算资源的场景。"
|
||||
|
||||
PolynomialFeatures:
|
||||
description: "生成多项式特征,将原始特征组合生成高阶特征,增加模型的非线性能力。"
|
||||
advantages:
|
||||
- "捕捉特征之间的交互关系,提高模型拟合能力。"
|
||||
- "无需引入新的特征,利用现有特征进行扩展。"
|
||||
disadvantages:
|
||||
- "可能导致特征数量爆炸,增加计算成本和过拟合风险。"
|
||||
- "生成的高阶特征可能缺乏实际意义,增加理解难度。"
|
||||
applicable_scenarios:
|
||||
- "线性模型无法满足需求,需要引入非线性特征的情况。"
|
||||
- "希望通过特征组合提高模型性能的场景。"
|
||||
|
||||
OneHotEncoder:
|
||||
description: "将分类特征转换为独热编码,每个类别用一个二进制向量表示,消除类别之间的顺序关系。"
|
||||
advantages:
|
||||
- "适用于无序分类特征,避免引入虚假的顺序信息。"
|
||||
- "与大多数机器学习算法兼容性好。"
|
||||
disadvantages:
|
||||
- "当类别数量较多时,可能导致特征矩阵维度过高。"
|
||||
- "对新出现的类别需要重新训练编码器。"
|
||||
applicable_scenarios:
|
||||
- "处理无序分类特征,如性别、颜色等。"
|
||||
- "需要将类别型特征转换为数值型特征的场景。"
|
||||
|
||||
|
||||
|
||||
186
date_feature/parameter.yaml
Normal file
186
date_feature/parameter.yaml
Normal file
@ -0,0 +1,186 @@
|
||||
feature_engineering_methods_parameters:
|
||||
|
||||
LabelEncoder:
|
||||
parameters: {}
|
||||
|
||||
KBinsDiscretizer:
|
||||
parameters:
|
||||
n_bins:
|
||||
description: "指定每个特征要分成的箱数。可以是单个整数,表示所有特征使用相同的箱数;也可以是形状为 (n_features,) 的数组,为每个特征指定不同的箱数。"
|
||||
default: 5
|
||||
encode:
|
||||
description: "指定离散化后输出的编码方式。可选值包括 'onehot'(独热编码)、'onehot-dense'(密集独热编码)、'ordinal'(序数编码)。"
|
||||
default: 'onehot'
|
||||
strategy:
|
||||
description: "定义分箱策略。可选值包括 'uniform'(均匀分箱)、'quantile'(分位数分箱)、'kmeans'(K-Means 聚类分箱)。"
|
||||
default: 'quantile'
|
||||
|
||||
FunctionTransformer:
|
||||
parameters:
|
||||
func:
|
||||
description: "要应用于输入数据的函数。"
|
||||
default: null
|
||||
inverse_func:
|
||||
description: "func 的逆函数,如果存在。"
|
||||
default: null
|
||||
validate:
|
||||
description: "布尔值,指示是否在转换前验证输入数据。"
|
||||
default: false
|
||||
accept_sparse:
|
||||
description: "布尔值,指示是否接受稀疏矩阵作为输入。"
|
||||
default: false
|
||||
check_inverse:
|
||||
description: "布尔值,指示在适合期间是否检查 func 和 inverse_func 是否互为逆函数。"
|
||||
default: true
|
||||
kw_args:
|
||||
description: "传递给 func 的其他关键字参数。"
|
||||
default: null
|
||||
inv_kw_args:
|
||||
description: "传递给 inverse_func 的其他关键字参数。"
|
||||
default: null
|
||||
|
||||
PowerTransformer:
|
||||
parameters:
|
||||
method:
|
||||
description: "指定变换方法。可选值包括 'yeo-johnson' 和 'box-cox'。"
|
||||
default: 'yeo-johnson'
|
||||
standardize:
|
||||
description: "布尔值,指示是否在变换后将数据标准化为零均值和单位方差。"
|
||||
default: true
|
||||
copy:
|
||||
description: "布尔值,指示是否复制输入数据,或在原地进行变换。"
|
||||
default: true
|
||||
|
||||
QuantileTransformer:
|
||||
parameters:
|
||||
n_quantiles:
|
||||
description: "用于分位数变换的分位数数量。"
|
||||
default: 1000
|
||||
output_distribution:
|
||||
description: "指定输出分布。可选值包括 'uniform' 和 'normal'。"
|
||||
default: 'uniform'
|
||||
ignore_implicit_zeros:
|
||||
description: "布尔值,指示是否忽略隐式零。"
|
||||
default: false
|
||||
subsample:
|
||||
description: "用于计算分位数的子样本大小。"
|
||||
default: 1e5
|
||||
random_state:
|
||||
description: "用于随机数生成的种子。"
|
||||
default: null
|
||||
copy:
|
||||
description: "布尔值,指示是否复制输入数据,或在原地进行变换。"
|
||||
default: true
|
||||
|
||||
FeatureHasher:
|
||||
parameters:
|
||||
n_features:
|
||||
description: "哈希空间的维度。"
|
||||
default: 1048576
|
||||
input_type:
|
||||
description: "输入数据的类型。可选值包括 'dict' 和 'pair'。"
|
||||
default: 'dict'
|
||||
dtype:
|
||||
description: "输出数据的类型。"
|
||||
default: 'float64'
|
||||
alternate_sign:
|
||||
description: "布尔值,指示是否在哈希时使用交替符号。"
|
||||
default: true
|
||||
|
||||
DictVectorizer:
|
||||
parameters:
|
||||
dtype:
|
||||
description: "输出数据的类型。"
|
||||
default: 'float64'
|
||||
separator:
|
||||
description: "用于分隔特征名称的分隔符。"
|
||||
default: '='
|
||||
sparse:
|
||||
description: "布尔值,指示是否返回稀疏矩阵。"
|
||||
default: true
|
||||
sort:
|
||||
description: "布尔值,指示是否对特征名称排序。"
|
||||
default: true
|
||||
|
||||
PCA:
|
||||
parameters:
|
||||
n_components:
|
||||
description: "要保留的主成分数量。可以是整数、浮点数或 'mle'。"
|
||||
default: null
|
||||
copy:
|
||||
description: "布尔值,指示是否复制输入数据,或在原地进行变换。"
|
||||
default: true
|
||||
whiten:
|
||||
description: "布尔值,指示是否对主成分进行白化。"
|
||||
default: false
|
||||
svd_solver:
|
||||
description: "用于计算 SVD 的方法。可选值包括 'auto'、'full'、'arpack' 和 'randomized'。"
|
||||
default: 'auto'
|
||||
tol:
|
||||
description: "奇异值分解的容差。"
|
||||
default: 0.0
|
||||
iterated_power:
|
||||
description: "用于随机化 SVD 的迭代次数。"
|
||||
default: 'auto'
|
||||
random_state:
|
||||
description: "用于随机数生成的种子。"
|
||||
default: null
|
||||
|
||||
SelectKBest:
|
||||
parameters:
|
||||
score_func:
|
||||
description: "用于计算特征得分的函数。"
|
||||
default: 'f_classif'
|
||||
k:
|
||||
description: "要选择的特征数量。"
|
||||
default: 10
|
||||
|
||||
RFE:
|
||||
parameters:
|
||||
estimator:
|
||||
description: "用于特征选择的基模型。"
|
||||
default: null
|
||||
n_features_to_select:
|
||||
description: "要选择的特征数量。"
|
||||
default: null
|
||||
step:
|
||||
description: "每次迭代要移除的特征数量。"
|
||||
default: 1
|
||||
verbose:
|
||||
description: "控制冗长模式的整数。"
|
||||
default: 0
|
||||
|
||||
PolynomialFeatures:
|
||||
parameters:
|
||||
degree:
|
||||
description: "生成多项式特征的最高次数。"
|
||||
default: 2
|
||||
interaction_only:
|
||||
description: "布尔值,指示是否仅包含交互项。"
|
||||
default: false
|
||||
include_bias:
|
||||
description: "布尔值,指示是否包含偏置列。"
|
||||
default: true
|
||||
order:
|
||||
description: "输出特征的顺序。可选值包括 'C' 和 'F'。"
|
||||
default: 'C'
|
||||
|
||||
OneHotEncoder:
|
||||
parameters:
|
||||
categories:
|
||||
description: "指定每个特征的类别。"
|
||||
default: 'auto'
|
||||
drop:
|
||||
description: "指定要从每个特征中删除的类别。"
|
||||
default: null
|
||||
sparse:
|
||||
description: "布尔值,指示是否返回稀疏矩阵。"
|
||||
default: true
|
||||
dtype:
|
||||
description: "输出数据的类型。"
|
||||
default: 'float64'
|
||||
handle_unknown:
|
||||
description: "指定如何处理未知类别。可选值"
|
||||
|
||||
|
||||
|
||||
255
date_feature/parameter_new.yaml
Normal file
255
date_feature/parameter_new.yaml
Normal file
@ -0,0 +1,255 @@
|
||||
feature_engineering_methods_parameters:
|
||||
|
||||
LabelEncoder:
|
||||
description: "将分类标签编码为整数。"
|
||||
parameters: []
|
||||
|
||||
KBinsDiscretizer:
|
||||
description: "将连续数据分箱为离散数据。"
|
||||
parameters:
|
||||
- name: "n_bins"
|
||||
type: "int or array-like"
|
||||
default: 5
|
||||
description: "指定每个特征要分成的箱数。可以是单个整数,表示所有特征使用相同的箱数;也可以是形状为 (n_features,) 的数组,为每个特征指定不同的箱数。"
|
||||
- name: "encode"
|
||||
type: "str"
|
||||
default: "onehot"
|
||||
description: "指定离散化后输出的编码方式。可选值包括 'onehot'(独热编码)、'onehot-dense'(密集独热编码)、'ordinal'(序数编码)。"
|
||||
- name: "strategy"
|
||||
type: "str"
|
||||
default: "quantile"
|
||||
description: "定义分箱策略。可选值包括 'uniform'(均匀分箱)、'quantile'(分位数分箱)、'kmeans'(K-Means 聚类分箱)。"
|
||||
|
||||
FunctionTransformer:
|
||||
description: "对数据应用自定义函数进行转换。"
|
||||
parameters:
|
||||
- name: "func"
|
||||
type: "callable"
|
||||
default: null
|
||||
description: "要应用于输入数据的函数。"
|
||||
- name: "inverse_func"
|
||||
type: "callable"
|
||||
default: null
|
||||
description: "func 的逆函数,如果存在。"
|
||||
- name: "validate"
|
||||
type: "bool"
|
||||
default: false
|
||||
description: "指示是否在转换前验证输入数据。"
|
||||
- name: "accept_sparse"
|
||||
type: "bool"
|
||||
default: false
|
||||
description: "指示是否接受稀疏矩阵作为输入。"
|
||||
- name: "check_inverse"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示在适合期间是否检查 func 和 inverse_func 是否互为逆函数。"
|
||||
- name: "kw_args"
|
||||
type: "dict"
|
||||
default: null
|
||||
description: "传递给 func 的其他关键字参数。"
|
||||
- name: "inv_kw_args"
|
||||
type: "dict"
|
||||
default: null
|
||||
description: "传递给 inverse_func 的其他关键字参数。"
|
||||
|
||||
PowerTransformer:
|
||||
description: "对数据进行幂变换以使其更符合正态分布。"
|
||||
parameters:
|
||||
- name: "method"
|
||||
type: "str"
|
||||
default: "yeo-johnson"
|
||||
description: "指定变换方法。可选值包括 'yeo-johnson' 和 'box-cox'。"
|
||||
- name: "standardize"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否在变换后将数据标准化为零均值和单位方差。"
|
||||
- name: "copy"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否复制输入数据,或在原地进行变换。"
|
||||
|
||||
QuantileTransformer:
|
||||
description: "将数据转换为均匀分布或正态分布。"
|
||||
parameters:
|
||||
- name: "n_quantiles"
|
||||
type: "int"
|
||||
default: 1000
|
||||
description: "用于分位数变换的分位数数量。"
|
||||
- name: "output_distribution"
|
||||
type: "str"
|
||||
default: "uniform"
|
||||
description: "指定输出分布。可选值包括 'uniform' 和 'normal'。"
|
||||
- name: "ignore_implicit_zeros"
|
||||
type: "bool"
|
||||
default: false
|
||||
description: "指示是否忽略隐式零。"
|
||||
- name: "subsample"
|
||||
type: "int"
|
||||
default: 100000
|
||||
description: "用于计算分位数的子样本大小。"
|
||||
- name: "random_state"
|
||||
type: "int or None"
|
||||
default: null
|
||||
description: "用于随机数生成的种子。"
|
||||
- name: "copy"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否复制输入数据,或在原地进行变换。"
|
||||
|
||||
FeatureHasher:
|
||||
description: "使用哈希技巧将特征映射到向量。"
|
||||
parameters:
|
||||
- name: "n_features"
|
||||
type: "int"
|
||||
default: 1048576
|
||||
description: "哈希空间的维度。"
|
||||
- name: "input_type"
|
||||
type: "str"
|
||||
default: "dict"
|
||||
description: "输入数据的类型。可选值包括 'dict' 和 'pair'。"
|
||||
- name: "dtype"
|
||||
type: "type"
|
||||
default: "float64"
|
||||
description: "输出数据的类型。"
|
||||
- name: "alternate_sign"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否在哈希时使用交替符号。"
|
||||
|
||||
DictVectorizer:
|
||||
description: "将符号表示的特征(如字典)转换为稀疏矩阵。"
|
||||
parameters:
|
||||
- name: "dtype"
|
||||
type: "type"
|
||||
default: "float64"
|
||||
description: "输出数据的类型。"
|
||||
- name: "separator"
|
||||
type: "str"
|
||||
default: "="
|
||||
description: "用于分隔特征名称的分隔符。"
|
||||
- name: "sparse"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否返回稀疏矩阵。"
|
||||
- name: "sort"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否对特征名称排序。"
|
||||
|
||||
|
||||
PCA:
|
||||
description: "主成分分析,用于降维。"
|
||||
parameters:
|
||||
- name: "n_components"
|
||||
type: "int, float, None or str"
|
||||
default: null
|
||||
description: "要保留的主成分数量。可以是整数、浮点数或 'mle'。"
|
||||
- name: "copy"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否复制输入数据,或在原地进行变换。"
|
||||
- name: "whiten"
|
||||
type: "bool"
|
||||
default: false
|
||||
description: "指示是否对主成分进行白化。"
|
||||
- name: "svd_solver"
|
||||
type: "str"
|
||||
default: "auto"
|
||||
description: "用于计算 SVD 的方法。可选值包括 'auto'、'full'、'arpack' 和 'randomized'。"
|
||||
- name: "tol"
|
||||
type: "float"
|
||||
default: 0.0
|
||||
description: "奇异值分解的容差。"
|
||||
- name: "iterated_power"
|
||||
type: "int or 'auto'"
|
||||
default: 'auto'
|
||||
description: "用于随机化 SVD 的迭代次数。"
|
||||
- name: "random_state"
|
||||
type: "int or None"
|
||||
default: null
|
||||
description: "用于随机数生成的种子。"
|
||||
|
||||
SelectKBest:
|
||||
description: "选择最重要的 K 个特征。"
|
||||
parameters:
|
||||
- name: "score_func"
|
||||
type: "callable"
|
||||
default: "f_classif"
|
||||
description: "用于计算特征得分的函数。"
|
||||
- name: "k"
|
||||
type: "int"
|
||||
default: 10
|
||||
description: "要选择的特征数量。"
|
||||
|
||||
RFE:
|
||||
description: "递归特征消除,用于选择最重要的特征。"
|
||||
parameters:
|
||||
- name: "estimator"
|
||||
type: "object"
|
||||
default: null
|
||||
description: "用于特征选择的基模型。"
|
||||
- name: "n_features_to_select"
|
||||
type: "int"
|
||||
default: null
|
||||
description: "要选择的特征数量。"
|
||||
- name: "step"
|
||||
type: "int"
|
||||
default: 1
|
||||
description: "每次迭代要移除的特征数量。"
|
||||
- name: "verbose"
|
||||
type: "int"
|
||||
default: 0
|
||||
description: "控制冗长模式的整数。"
|
||||
|
||||
PolynomialFeatures:
|
||||
description: "生成多项式特征,增加模型的非线性能力。"
|
||||
parameters:
|
||||
- name: "degree"
|
||||
type: "int"
|
||||
default: 2
|
||||
description: "生成多项式特征的最高次数。"
|
||||
- name: "interaction_only"
|
||||
type: "bool"
|
||||
default: false
|
||||
description: "指示是否仅包含交互项。"
|
||||
- name: "include_bias"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否包含偏置列。"
|
||||
- name: "order"
|
||||
type: "str"
|
||||
default: "C"
|
||||
description: "输出特征的顺序。可选值包括 'C' 和 'F'。"
|
||||
|
||||
OneHotEncoder:
|
||||
description: "将分类特征转换为独热编码。"
|
||||
parameters:
|
||||
- name: "categories"
|
||||
type: "str or list or 'auto'"
|
||||
default: "auto"
|
||||
description: "指定每个特征的类别。"
|
||||
- name: "drop"
|
||||
type: "str or array-like"
|
||||
default: null
|
||||
description: "指定要从每个特征中删除的类别。"
|
||||
- name: "sparse"
|
||||
type: "bool"
|
||||
default: true
|
||||
description: "指示是否返回稀疏矩阵。"
|
||||
- name: "dtype"
|
||||
type: "type"
|
||||
default: "float64"
|
||||
description: "输出数据的类型。"
|
||||
- name: "handle_unknown"
|
||||
type: "str"
|
||||
default: "error"
|
||||
description: "指定如何处理未知类别。可选值包括 'error'(抛出异常)、'ignore'(忽略)。"
|
||||
- name: "max_categories"
|
||||
type: "int or None"
|
||||
default: null
|
||||
description: "在类别过多时,将类别限制为最大类别数量。"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user