134 lines
6.3 KiB
YAML
134 lines
6.3 KiB
YAML
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:
|
|
- "处理无序分类特征,如性别、颜色等。"
|
|
- "需要将类别型特征转换为数值型特征的场景。"
|
|
|
|
|
|
|