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