第一章:特征工程导论
什么是特征工程?
说白了,特征工程就是把原始数据变成机器学习模型能听懂的语言。我刚开始做量化时,拿到的数据就是一堆乱七八糟的行情快照——价格、成交量、买卖盘口。直接扔进模型?效果惨不忍睹。
特征工程就是干这个的:从原始数据里提炼出有价值的信息。比如把价格序列变成收益率、把盘口数据变成买卖压力比、把时间戳变成星期几。这些转换后的数据,我们叫它「特征」。
举个例子。原始数据里只有「当前价格」和「昨日价格」两列。这能看出什么?太少。但如果你构造一个特征叫「涨跌幅 = (当前价 - 昨日价) / 昨日价」,模型就能知道价格变化了多少。再构造一个「5日平均涨跌幅」,模型就能感知趋势。这就是特征工程——把原始信息加工成模型需要的形态。
核心定义:特征工程是将原始数据转换为更能代表问题本质、更能提升模型性能的特征表示的过程。它是机器学习流程中最关键、最耗时的一步。
特征工程在机器学习中的重要性
我见过太多人一上来就调模型参数、换算法。其实呢?数据质量决定了模型的上限,模型只是逼近这个上限。特征工程就是提升这个上限的手段。
给你讲个真实案例。有一次我在做股票日频选股模型,用同样的逻辑回归算法。第一版只用了原始量价数据,夏普比率0.8。第二版我加了20个手工构造的因子——动量、反转、波动率、流动性等,夏普直接跳到1.6。模型没变,数据变了,结果翻倍。
为什么会这样?因为原始数据里信息是隐式的。模型自己很难从价格序列里学到「过去5天涨了20%可能意味着超买」这种逻辑。但特征工程把这些逻辑显式地表达出来,模型学起来就轻松多了。
特征工程的重要性可以总结为三点:
- 提升模型性能:好的特征能让简单模型达到复杂模型的效果
- 降低数据需求:特征质量高时,不需要海量数据也能训练出好模型
- 增强可解释性:有意义的特征让模型决策过程更透明
我的经验:在量化投资领域,特征工程往往比模型选择更重要。一个简单的线性模型配上优秀的因子,常常能跑赢复杂的深度学习模型配上粗糙的特征。别问我怎么知道的——我踩过这个坑。
特征工程与因子挖掘的关系
这两个概念经常被混用,其实有区别。特征工程是更通用的概念,因子挖掘是它在量化投资领域的特化版本。
特征工程关注的是:如何从数据中提取对预测任务有用的信息。它可以是任何领域的——图像、文本、时间序列。
因子挖掘关注的是:如何从金融数据中提取能解释或预测资产收益的变量。这些变量我们叫「因子」,比如价值因子、动量因子、质量因子。
说白了,因子挖掘就是金融领域的特征工程。但有个区别:因子挖掘更强调经济含义和逻辑支撑。一个因子不能只是统计上有效,还得有合理的解释——为什么这个因子能赚钱?
| 维度 | 特征工程 | 因子挖掘 |
|---|---|---|
| 领域 | 通用 | 量化金融 |
| 目标 | 提升模型性能 | 解释/预测收益 |
| 约束 | 无特殊约束 | 需经济逻辑支撑 |
| 评估 | 模型指标(AUC、MSE等) | 金融指标(IC、夏普、换手率等) |
我在做因子挖掘时,经常会把特征工程的方法搬过来用。比如用PCA做因子降维、用聚类做因子分组、用特征选择算法筛选有效因子。这些方法在通用特征工程里很成熟,搬到金融领域一样好用。
课程概览与学习路径
这门课一共30章,我把它分成四个模块。你想想看,学完这些你就能从数据小白变成因子挖掘老手。
先给你看个整体框架图:
学习路径我建议这样走:
- 先打基础(第1-8章):掌握数据清洗、单因子分析、特征选择这些基本功。别急着上复杂方法,基础不牢地动山摇。
- 再学进阶(第9-16章):时间序列、截面因子、高频数据——这些是量化领域的核心技能。我当年就是在这块花了最多时间。
- 然后实战(第17-24章):自动化挖掘、遗传规划、深度学习。这些方法能帮你批量生产因子,效率提升10倍不止。
- 最后前沿(第25-30章):图神经网络、强化学习、可解释性分析。这些是当前学术界和业界的热点,能让你站在前沿。
避坑指南:我曾经跳过基础直接学深度学习因子挖掘,结果连因子IC是什么都没搞懂,代码跑出来一堆伪相关。后来老老实实回去补基础,才发现很多高级方法不过是基础方法的组合和延伸。嗯,别学我走弯路。
每章我都会配上代码示例和实战案例。你跟着敲一遍,比看十遍都管用。我个人习惯是边学边写笔记,把每个因子的构造逻辑和代码对应起来,这样印象最深。
好了,第一章就到这里。记住一句话:特征工程不是锦上添花,而是雪中送炭。没有好的特征,再牛的模型也是白搭。