课程进度 48% · 第6/11章第6/11章 · 标签 1/3
— 1 —
特征工程
什么是特征工程?
特征工程就像是给机器学习模型准备'食材'的过程。无论你的厨艺(算法)有多好,如果食材(特征)本身不新鲜、不干净,最终做出来的菜(模型)也不会好吃。特征工程就是要把原始数据'加工'成模型能够理解和有效利用的特征,这是机器学习项目中最关键也最耗时的步骤之一。
📖想象你在教一个小朋友认识水果。你拿出一个苹果说'这是红色的、圆圆的、有把儿的水果',小朋友就学会了如何识别苹果。这里的'红色'、'圆圆'、'有把儿'就是特征。特征工程就是要找出这些最有辨识度的特征,让模型能像小朋友一样快速准确地识别各种事物。
特征提取
- 从原始数据中提取有用信息
- 处理文本、图像、时间等
- 创建新特征组合
特征转换
- 标准化和归一化处理
- 对数/指数变换
- 离散化与分箱
特征选择
- 过滤低重要性特征
- 降低维度减少过拟合
- 提升模型训练速度
常见的特征工程方法
1. 数值型特征处理:数值型特征通常需要标准化或归一化,特别是使用基于距离的算法时。
实践案例 - 房价预测:面积(50~500㎡)和卧室数(1~5间)量纲不同,模型会认为面积更重要。通过标准化(Z-score)让所有特征在同一尺度上,模型才能正确学习。
- 标准化(StandardScaler):将数据转换为均值为0,标准差为1
- 归一化(MinMaxScaler):将数据缩放到[0,1]区间
- 对数转换:处理长尾分布,使数据更接近正态分布
2. 类别型特征处理:机器学习模型无法直接处理文本形式的类别数据,需要将其转换为数值。
实践案例 - 用户画像:用户所在城市(北京、上海、广州)需要转为数值。独热编码将其变为'是否北京''是否上海''是否广州'三个特征,每个城市对应一个特征为1。
- 独热编码(One-Hot Encoding):创建虚拟变量,每个类别一列
- 标签编码(Label Encoding):将类别映射为整数(有序类别适用)
- 目标编码(Target Encoding):用目标变量的均值替换类别值
3. 时间特征处理:时间数据具有周期性、趋势性等特性,需要特殊处理才能被模型利用。
实践案例 - 销售预测:分析某电商平台销售数据,提取'星期几'、'是否节假日'、'距上次促销天数'等时间特征,模型发现周五和节前销量明显上升。
- 提取年/月/日/星期/小时等时间分量
- 计算时间差(距上次购买天数等)
- 周期性编码(用sin/cos处理周期性变化)
— 2 —
特征提取特征选择标准化独热编码PCA分箱