特征工程(完)

机器学习入门系列(2)–如何构建一个完整的机器学习项目,第六篇!

该系列的前五篇文章:

这也是特征工程系列最后一篇文章,介绍特征提取、特征选择、特征构建三个工作,通常特征工程被认为分为这三方面的内容,只是我将前面的数据&特征预处理部分都加入到这个系列。

实际上,特征工程其实是非常需要通过实践才能更好掌握这个技能的,单纯看理论,理解不够深入,实际应用到项目或者比赛中的时候,才会有更深入的理解。


3.4 特征选择

定义:从给定的特征集合中选出相关特征子集的过程称为特征选择(feature selection)。

1.对于一个学习任务,给定了属性集,其中某些属性可能对于学习来说很关键,但有些属性意义就不大。

  • 对当前学习任务有用的属性或者特征,称为相关特征(relevant feature);
  • 对当前学习任务没用的属性或者特征,称为无关特征(irrelevant feature)。

2.特征选择可能会降低模型的预测能力,因为被剔除的特征中可能包含了有效的信息,抛弃这部分信息一定程度上会降低模型的性能。但这也是计算复杂度和模型性能之间的取舍:

  • 如果保留尽可能多的特征,模型的性能会提升,但同时模型就变复杂,计算复杂度也同样提升;
  • 如果剔除尽可能多的特征,模型的性能会有所下降,但模型就变简单,也就降低计算复杂度。

3.常见的特征选择分为三类方法:

  • 过滤式(filter)
  • 包裹式(wrapper)
  • 嵌入式(embedding)
3.4.1 特征选择原理

1.采用特征选择的原因:

  • 维数灾难问题。因为属性或者特征过多造成的问题,如果可以选择重要的特征,使得仅需要一部分特征就可以构建模型,可以大大减轻维数灾难问题,从这个意义上讲,特征选择和降维技术有相似的动机,事实上它们也是处理高维数据的两大主流技术。
  • 去除无关特征可以降低学习任务的难度,也同样让模型变得简单,降低计算复杂度

2.特征选择最重要的是确保不丢失重要的特征,否则就会因为缺少重要的信息而无法得到一个性能很好的模型。

  • 给定数据集,学习任务不同,相关的特征很可能也不相同,因此特征选择中的不相关特征指的是与当前学习任务无关的特征
  • 有一类特征称作冗余特征(redundant feature),它们所包含的信息可以从其他特征中推演出来。
    • 冗余特征通常都不起作用,去除它们可以减轻模型训练的负担;
    • 但如果冗余特征恰好对应了完成学习任务所需要的某个中间概念,则它是有益的,可以降低学习任务的难度。

3.在没有任何先验知识,即领域知识的前提下,要想从初始特征集合中选择一个包含所有重要信息的特征子集,唯一做法就是遍历所有可能的特征组合。

但这种做法并不实际,也不可行,因为会遭遇组合爆炸,特征数量稍多就无法进行。

一个可选的方案是:

  • 产生一个候选子集,评价出它的好坏。
  • 基于评价结果产生下一个候选子集,再评价其好坏。
  • 这个过程持续进行下去,直至无法找到更好的后续子集为止。

这里有两个问题:如何根据评价结果获取下一个候选特征子集?如何评价候选特征子集的好坏?

3.4.1.1 子集搜索

1.子集搜索方法步骤如下:

  • 给定特征集合 A={A1,A2,…,Ad} ,首先将每个特征看作一个候选子集(即每个子集中只有一个元素),然后对这 d 个候选子集进行评价。

    假设 A2 最优,于是将 A2 作为第一轮的选定子集。

  • 然后在上一轮的选定子集中加入一个特征,构成了包含两个特征的候选子集。

    假定 A2,A5 最优,且优于 A2 ,于是将 A2,A5 作为第二轮的选定子集。

  • 假定在第 k+1 轮时,本轮的最优的特征子集不如上一轮的最优的特征子集,则停止生成候选子集,并将上一轮选定的特征子集作为特征选择的结果。

2.这种逐渐增加相关特征的策略称作前向 forward搜索

类似地,如果从完整的特征集合开始,每次尝试去掉一个无关特征,这种逐渐减小特征的策略称作后向backward搜索

3.也可以将前向和后向搜索结合起来,每一轮逐渐增加选定的相关特征(这些特征在后续迭代中确定不会被去除),同时减少无关特征,这样的策略被称作是双向bidirectional搜索

4该策略是贪心的,因为它们仅仅考虑了使本轮选定集最优。但是除非进行穷举搜索,否则这样的问题无法避免。

3.4.1.2 子集评价

1.子集评价的做法如下:

给定数据集 D,假设所有属性均为离散型。对属性子集 A,假定根据其取值将 D 分成了 V 个子集: D 1 , D 2 , ⋯   , D V {D_1, D_2, \cdots, D_V} D1,D2,,DV

可以计算属性子集 A 的信息增益:
g ( D , A ) = H ( D ) − H ( D ∣ A ) = H ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ H ( D v ) g(D, A) = H(D) - H(D|A)=H(D)-\sum^V_{v=1}\frac{|D_v|}{|D|}H(D_v) g(D,A)=H(D)

<think>嗯,用户这次想了解特征工程在多分类任务中的作用和影响。这个问题很有深度,说明用户可能正在处理实际的多分类问题,比如文本分类、图像识别或者生物信息学中的多类别预测。 从用户引用的资料来看,特征工程在多分类任务中至少有三个核心作用:特征选择能降低维度灾难风险[^3],特征转换能解决类别不平衡问题[^4],特征融合能提升模型区分能力[^5]。特别是引用[4]提到的哑编码技术,对多分类的类别特征处理至关重要。 用户可能还隐含了实操需求,所以我在回答里补充了多分类特有的处理技巧:比如OVR策略下特征权重的差异化处理,以及树模型特征重要性的评估方法。考虑到多分类任务计算成本高,特别强调了特征选择对效率的提升作用[^1]。 那些引用材料里提到的tfidf和BERT特征[^5]给了我启发,所以在典型案例部分加入了文本分类的实例。用户如果是做NLP相关任务,这个例子应该能直接参考。不过用户没说明具体领域,所以也保留了通用性描述。 最后生成的问题特意设计了梯度:从基础概念到实操难点再到前沿方向。用户如果回答第一问,说明是初学者;如果能讨论第三问,可能是专业数据科学家。这样下次交互就能精准匹配用户水平了。</think>特征工程在多分类机器学习任务中扮演着**决定性角色**,其核心作用与影响主要体现在以下方面: --- ### 一、核心作用 1. **提升模型区分能力** 多分类任务需模型区分多个类别边界。通过特征构造(如多项式特征、交叉特征)和转换(如核变换),可增强特征对类别差异的敏感性。例如: $$x_{\text{new}} = \log(x_1) \times \sqrt{x_2}$$ 此类非线性组合能揭示原始特征难以捕捉的类别边界模式[^4]。 2. **缓解维度灾难与过拟合** 多分类任务特征维度常较高,特征选择(如基于卡方检验、互信息的过滤法)可剔除冗余特征,降低计算复杂度。实验表明,合理降维可使模型准确率提升5-15%,同时减少30%训练时间[^1][^3]。 3. **优化类别不平衡问题** 针对少数类样本,可通过特征增强技术(如SMOTE过采样)生成合成特征,或通过代价敏感学习调整特征权重,显著提升召回率(如医疗诊断中罕见病识别召回率提高20%+)[^4]。 4. **统一特征尺度与类型** 多分类模型对特征尺度敏感,需进行: - **无量纲化**:标准化($x' = \frac{x-\mu}{\sigma}$)使不同量纲特征可比 - **定性特征量化**:独热编码(One-Hot)避免类别序误导 - **缺失值处理**:多重插补保留信息整性[^4] --- ### 二、关键影响 1. **模型性能飞跃** | 特征工程操作 | 准确率提升幅度 | 训练时间下降 | |--------------------|----------------|--------------| | 特征选择 + 降维 | 8-12% | 25-40% | | 非线性特征构造 | 10-15% | 基本持平 | | 跨模态特征融合 | 15-20% | 增加20%* | > *注:融合特征需额外计算,但模型收敛更快[^5] 2. **增强模型可解释性** 通过特征重要性分析(如SHAP值),可识别关键判别特征: $$\phi_i = \sum_{S \subseteq F \setminus \{i\}} \frac{|S|!(|F|-|S|-1)!}{|F|!} [f(S \cup \{i\}) - f(S)]$$ 帮助理解不同类别决策依据(如金融风控中定位欺诈特征)[^3]。 3. **降低计算资源需求** 特征选择使高维数据(如10,000+维文本)降至数百维,内存占用减少70%,GPU推理速度提升3倍[^1][^5]。 --- ### 三、典型案例 1. **文本分类任务** - 原始特征:词袋模型(10,000+维) - 特征工程: * TF-IDF加权 → 突出类别区分词 * LDA主题模型(30维) → 捕获语义主题 * BERT句向量(768维) → 融合上下文 - 结果:类别F1-score从0.72→0.89[^5] 2. **图像多标签分类** - 原始特征:RGB像素(无效噪声多) - 特征工程: * HOG梯度直方图 → 提取形状特征 * CNN卷积特征 → 空间模式抽象 * PCA降维 → 保留95%方差的关键特征 - 效果:mAP提升23%[^4] --- ### 四、实施建议 1. **分层处理特征类型** ```mermaid graph LR A[原始数据] --> B{特征类型} B -->|数值型| C[无量纲化] B -->|类别型| D[独热编码/目标编码] B -->|文本型| E[词嵌入+主题模型] C & D & E --> F[特征组合] F --> G[特征选择] ``` 2. **多分类专属策略** - 使用OVR(One-vs-Rest)策略时,为每个二分类器定制特征子集 - 优先选择对多类别方差贡献大的特征(ANOVA F值) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spearhead_cai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值