14 数据预处理与模型训练之特征工程
系列进度
深度学习入门 · 第 14 / 24 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
虽然深度学习能自动学习特征,但并不代表可以忽略预处理。输入尺度、编码方式、数据增强都会影响模型是否容易训练。
如果模型训练不稳定,先检查输入是否归一化、类别是否编码正确、训练和验证是否用了同一套处理流程。
在上一篇教程中,我们探讨了数据清洗与准备的相关内容,强调了如何处理缺失值、异常值等问题,为后续的特征工程奠定了基础。特征工程是机器学习和深度学习中至关重要的一步,它涉及到如何选择、修改和构建新的特征,以提高模型的性能。在本篇文章中,我们将深入探讨特征工程的相关概念和技术,力求为初学者提供一个清晰的学习路径。
什么是特征工程?
特征工程是从原始数据中提取出可用于机器学习模型的特征的过程。一个好的特征可以帮助模型更好地理解数据,提高预测精度。特征工程通常包括特征选择、特征提取和特征构造等步骤。
做深度学习特征工程时,先看输入格式、归一化、类别编码、数据增强、训练验证隔离和模型输入形状。
1. 特征选择
特征选择是指在给定数据中挑选出最有用的特征,去除那些冗余或不相关的特征。特征选择可以帮助减少模型的复杂性,同时提高模型的性能。常见的特征选择方法包括:
- 过滤法:根据特征与目标变量之间的某种度量(如相关系数、卡方检验)进行选择。
- 包裹法:使用特定的学习算法来评估特征子集的好坏。
- 嵌入法:将特征选择与模型训练结合起来,使用模型的评估指标选择特征。
示例:使用Sklearn进行特征选择
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest, f_classif
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 选择最佳的两个特征
selector = SelectKBest(score_func=f_classif, k=2)
X_new = selector.fit_transform(X, y)
# 显示选择的特征
print("原始特征数量:", X.shape[1])
print("选择后的特征数量:", X_new.shape[1])
2. 特征提取
特征提取是从原始数据中生成新的特征的过程。它通常应用于高维数据,如图像和文本。通过特征提取,我们可以将原始数据转换为更有意义的形式。
示例:使用PCA进行特征提取
主成分分析(PCA)是一种常用的特征提取方法,它可以将高维数据投影到低维空间。
from sklearn.decomposition import PCA
# 使用PCA将特征降到2维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
print("PCA降维后的特征形状:", X_pca.shape)
3. 特征构造
特征构造是我们通过已有特征创建新的特征的过程。例如,我们可以通过将两个特征相乘或取其比值得到新特征。这种方法不仅可以增加模型的表达能力,还可以捕捉数据的非线性关系。
示例:特征构造
假设我们有一个数据集,包含“价格”和“数量”两个特征,我们可以创建一个新的特征“总金额”。
# 假设我们有一个数据框df
df = pd.DataFrame({
'价格': [100, 200, 300],
'数量': [1, 2, 3]
})
# 创建新特征'总金额'
df['总金额'] = df['价格'] * df['数量']
print(df)
学完《数据预处理与模型训练之特征工程》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。
如果想把《数据预处理与模型训练之特征工程》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。
结论
特征工程是数据预处理与模型训练过程中不可或缺的一部分,它直接影响到模型的性能。通过特征选择、特征提取和特征构造等方法,我们可以有效地提升模型的预测能力。在实际应用中,特征工程需要反复试验和调整,以找到最优的特征组合。
读完《数据预处理与模型训练之特征工程》后,可以回头问三件事:它解决什么问题,哪一步最容易出错,自己能否拿一个小例子跑通。
在下一篇文章中,我们将探讨训练集与测试集的划分及其重要性,为模型的训练和评估提供基础。希望大家能够继续关注这一系列教程,深入掌握深度学习的各项技巧与方法。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
数据预处理与模型训练之特征工程适合谁读?
这是 深度学习入门 系列第 14 / 24 篇,适合正在学习深度学习入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇深度学习入门教程要多久?
按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读