数据集与特征工程入门
训练集(Training Set):用于训练模型,让算法学习规律;验证集(Validation Set):用于调节超参数,避免模型过拟合;测试集(Test Set):用于评估模型的最终性能,保证结果可靠。特征(Features):房屋面积、位置、楼层、装修情况等;标签(Label):房屋价格。特征工程是指对原始数据进行处理,使其更好地适合机器学习模型的过程。特征工程 = 提取有用特征 + 转换数据
在机器学习与深度学习的整个流程中,数据是决定模型效果的关键因素。俗话说:“Garbage in, garbage out(垃圾进,垃圾出)。” 如果数据质量不好,再先进的算法也难以发挥作用。除了数据本身,如何从数据中提取和处理有价值的信息——也就是特征工程(Feature Engineering),更是影响模型性能的核心环节。本文将带你入门 数据集与特征工程,了解它们在 AI 项目中的重要性和实践方法。
一、什么是数据集?
数据集(Dataset)就是用于模型训练和测试的数据集合,它通常分为:
- 训练集(Training Set):用于训练模型,让算法学习规律;
- 验证集(Validation Set):用于调节超参数,避免模型过拟合;
- 测试集(Test Set):用于评估模型的最终性能,保证结果可靠。
举个例子:如果我们要做“房价预测”,那么数据集可能包含:
- 特征(Features):房屋面积、位置、楼层、装修情况等;
- 标签(Label):房屋价格。
二、数据集的来源
常见的数据集来源包括:
-
公开数据集
- Kaggle、UCI Machine Learning Repository、天池大赛等;
- 适合学习和模型验证。
-
企业/业务数据
- 电商交易数据、用户日志、金融流水等;
- 通常需要做数据清洗与脱敏。
-
自建数据集
- 爬虫、传感器采集、人工标注等;
- 适合特定场景的 AI 应用。
三、数据预处理
在进入特征工程之前,数据往往需要先进行预处理:
-
缺失值处理
- 删除缺失严重的字段;
- 用均值、中位数、众数填充;
- 使用插值或模型预测填充。
-
异常值处理
- 删除极端不合理的数据;
- 使用箱线图(Box-Plot)检测异常值。
-
数据标准化与归一化
- 标准化(Standardization):均值=0,方差=1,适合正态分布数据;
- 归一化(Normalization):缩放到 [0,1] 区间,适合神经网络。
四、什么是特征工程?
特征工程是指对原始数据进行处理,使其更好地适合机器学习模型的过程。
一句话总结:特征工程 = 提取有用特征 + 转换数据表示 + 提升模型效果。
1. 特征提取
从原始数据中提取有价值的特征。
- 文本数据:提取关键词、TF-IDF、词向量(Word2Vec、BERT)。
- 图像数据:边缘检测、颜色直方图、深度学习自动提取特征。
- 时间序列:提取趋势、周期性、波动性。
2. 特征选择
并不是特征越多越好,冗余特征可能降低模型性能。常见方法:
- 过滤法(Filter):相关系数、方差筛选;
- 包裹法(Wrapper):递归特征消除(RFE);
- 嵌入法(Embedded):基于模型权重选择,如 Lasso 回归、随机森林重要性。
3. 特征转换
- 独热编码(One-Hot Encoding):处理类别型变量;
- 分箱(Binning):将连续值划分区间,如年龄分为“青年、中年、老年”;
- 降维(Dimensionality Reduction):如主成分分析(PCA),减少特征数量,保留主要信息。
五、特征工程的重要性
在传统机器学习中,特征工程往往比模型选择更重要。
- 好的特征能让简单模型也有好表现;
- 差的特征即使使用复杂的深度学习模型也很难成功。
一句行业名言:
“数据和特征决定了机器学习的上限,而算法只是逼近这个上限。”
六、实践案例:房价预测
假设我们有一份房价数据:
面积 | 房龄 | 区域 | 是否靠近地铁 | 价格 |
---|---|---|---|---|
80 | 10 | 市中心 | 是 | 120 万 |
120 | 5 | 郊区 | 否 | 90 万 |
60 | 20 | 市中心 | 否 | 70 万 |
我们可以做以下特征工程:
- 归一化面积和房龄,避免数值差距过大影响模型;
- 独热编码区域(市中心=1,郊区=0);
- 布尔变量转为数值(靠近地铁:是=1,否=0)。
这样,模型输入就变成:
[0.66, 0.33, 1, 1] → 120万
[1.00, 0.16, 0, 0] → 90万
[0.50, 0.66, 1, 0] → 70万
七、总结
- 数据集是模型学习的基础,来源广泛,需要合理划分训练/验证/测试集;
- 特征工程是提升模型性能的核心,包括特征提取、选择、转换等;
- 在实际项目中,特征工程往往比选择什么算法更重要;
- 在深度学习中,特征工程部分自动化,但数据清洗与合理的输入设计依然至关重要。
更多推荐
所有评论(0)