特征工程介绍
1 课程概览
本课详细讲解特征工程的概念与五个子领域(提取、预处理、降维、选择、组合),重点阐述特征提取与特征预处理的作用,并通过归一化公式示例演示特征预处理的具体计算方法。强调"数据和特征决定机器学习上限,模型和算法只是逼近这个上限"的核心思想。
2 核心概念与定义
- 特征工程(Feature Engineering):利用专业背景知识和技巧处理数据,让机器学习算法效果最好的过程。
- 特征提取(Feature Extraction):从原始数据中提取与任务相关的特征,构成特征向量,一般由行业专家完成。
- 特征预处理(Feature Preprocessing):防止量纲不同导致特征对模型影响差异,包括归一化和标准化两种方式。
- 特征降维(Dimensionality Reduction):将原始数据维度降低(如3D→2D)。
- 特征选择(Feature Selection):从众多特征中选择与任务直接相关的特征,不改变原数据。
- 特征组合(Feature Combination):将多列特征合并为一列(如BMI=体重/身高²)。
- 量纲(Dimension):数据的单位,量纲不同会导致特征对模型影响不同。
- 鲁棒性(Robustness):数据变化时模型结果保持稳定的能力。
- 归一化(Normalization):将数据缩放到0~1范围的方法。
- 标准化(Standardization):参考均值进行处理的方法。
3 算法与模型详解
3.1 特征工程的核心理念
数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。
因此,AI三要素(数据、算法、算力)中,数据最核心。
3.2 特征工程五个子领域对比
| 子领域 | 作用 | 是否改变原数据 | 使用频率 |
|---|---|---|---|
| 特征提取 | 从原始数据提取任务相关特征 | 是 | 高 |
| 特征预处理 | 防止量纲不同导致影响差异 | 是 | 高 |
| 特征降维 | 降低数据维度(3D→2D) | 是 | 低 |
| 特征选择 | 选择与任务直接相关的特征 | 否 | 低 |
| 特征组合 | 多列合并为一列 | 是 | 低 |
❗实际使用最多的是前两个:特征提取和特征预处理。
3.3 特征提取
- 定义:从原始数据中提取与任务相关的特征,构成特征向量。
- 执行者:一般由行业专家完成(如生物学家提取鸢尾花的花瓣、花萼特征)。
- 示例:预测薪资时,从身高、体重、学历、工作经验等众多特征中,选择学历、专业、工作年限等与薪资相关的特征。
3.4 特征预处理——量纲问题
量纲问题示例:
- 体重用kg:50、60、70、80、90...(数值大)
- 身高用m:1.5、1.6、1.7、1.8...(数值小)
由于单位不同,体重对模型影响大,身高影响小,需进行预处理。
两种预处理方式:
- 归一化(Normalization):将数据缩放到0~1。
- 标准化(Standardization):参考均值处理(后续详解)。
3.5 归一化公式与计算示例
归一化公式:
$$X' = \frac{X - X_{min}}{X_{max} - X_{min}}$$
- $X'$:归一化后的值
- $X$:当前值
- $X_{min}$:该列最小值
- $X_{max}$:该列最大值
计算示例(数据列:60, 75, 90):
| 当前值X | 最小值 | 最大值 | 计算 | 归一化结果 |
|---|---|---|---|---|
| 90 | 60 | 90 | (90-60)/(90-60) = 30/30 | 1 |
| 75 | 60 | 90 | (75-60)/(90-60) = 15/30 | 0.5 |
| 60 | 60 | 90 | (60-60)/(90-60) = 0/30 | 0 |
3.6 归一化的局限性
⚠️归一化过于依赖最大值和最小值,若存在异常值(如最大值应为100,实际为1000),结果偏差极大。即使有10万条数据,也只参考了最大值和最小值。
解决方案:使用标准化(参考均值),后续详解。
3.7 特征降维
- 将数据从高维降到低维(如3D→2D)。
- 2D平面图比3D图更易处理。
3.8 特征选择 vs 特征提取
| 比较维度 | 特征提取 | 特征选择 |
|---|---|---|
| 操作对象 | 原始数据 | 已处理特征 |
| 是否改变原数据 | 是 | 否 |
| 说明 | 从原始文件提取特征 | 从众多特征中选用部分 |
3.9 特征组合
- 将多列特征合并为一列。
- 示例:BMI指标 = 体重 / 身高²,将身高和体重两列组合为BMI一列。
4 数学原理与推导
4.1 归一化公式
$$X' = \frac{X - X_{min}}{X_{max} - X_{min}}$$
- $X'$:归一化后的值(范围0~1)
- $X$:当前值
- $X_{min}$:该列最小值
- $X_{max}$:该列最大值
4.2 扩展归一化(缩放到其他范围)
$$X'' = f(X')$$
可将数据归一化到3~5或5~10等其他范围。
5 代码示例
本课无完整代码,归一化与标准化的代码实现将在后续课程讲解。
6 重难点与易错提醒
- ❗重点:数据和特征决定机器学习上限,模型和算法只是逼近上限。
- ❗重点:特征工程五子领域——提取、预处理、降维、选择、组合,实际最多使用前两个。
- ⚠️易错:特征提取会改变原数据,特征选择不改变原数据。
- ⚠️易错:归一化过于依赖最大值和最小值,异常值会导致结果偏差极大。
- 💡深入理解:量纲=单位,量纲不同会导致鲁棒性差(数据变化导致结果变化)。
- 💡深入理解:特征提取一般由行业专家完成(如生物学家提取花的特征)。
7 课堂问答精选
Q: 特征工程在机器学习整个项目中是否最耗时?
A: 是的,特征工程和数据预处理是最耗时的环节。如果量纲不处理,会直接影响最终模型效果。
Q: 归一化有什么弊端?
A: 归一化过于依赖最大值和最小值。如果最大值或最小值是异常值,结果偏差极大。解决方案是使用标准化(参考均值处理)。
8 本课小结
- 特征工程 = 利用专业背景知识和技巧处理数据,让算法效果最好。
- 数据和特征决定机器学习上限,模型和算法只是逼近上限。
- 特征工程五子领域:提取、预处理、降维、选择、组合(前两个最常用)。
- 归一化公式:$X' = \frac{X - X_{min}}{X_{max} - X_{min}}$,将数据缩放到0~1。
- 归一化弊端:过于依赖最大值和最小值,异常值影响大,可用标准化替代。
9 延伸思考与实践
- 思考:为什么特征提取一般由行业专家完成?
- 思考:归一化和标准化各有什么优缺点?什么场景下使用哪种?
- 预习:标准化公式与代码实现。