一、课程导论:为什么用机器学习预测股价?
说实话,我第一次接触用机器学习预测股价,是在2017年。那时候我刚从传统量化转过来,心里也犯嘀咕——这东西真能行?
后来我做了几个实盘项目,踩了不少坑,也赚到过钱。今天我想跟你聊聊,为什么我们非要用机器学习来做这件事。
1.1 传统方法为什么不够用?
传统的股价预测,无非就是技术分析、基本面分析。你想想看,技术指标比如MACD、RSI,说白了就是历史价格的数学变换。它们能捕捉一些规律,但市场是活的,人的情绪、新闻、突发事件,这些指标根本反应不过来。
我有个朋友,用均线策略做了三年,前两年赚了,第三年亏回去一大半。为什么?因为市场风格变了,但均线还是那个均线。
机器学习不一样。它能从海量数据里自己找规律。不是人告诉它「涨了就该买」,而是它自己发现「哦,原来成交量放大加上某条新闻,后面大概率涨」。这就是本质区别。
1.2 机器学习能解决什么问题?
具体来说,机器学习在股价预测上能干三件事:
- 特征提取:从价格、成交量、新闻、财报里自动找出有用的信号
- 非线性建模:捕捉那些「A涨B跌,但A和B一起涨时C反而跌」的复杂关系
- 概率输出:不是告诉你「明天一定涨」,而是告诉你「明天涨的概率是67%」
我个人习惯把股价预测看作一个分类问题——涨还是跌,而不是回归问题。为什么?因为预测具体价格太难了,但判断方向,机器学习能做得不错。
核心观点:我们不是要预测未来价格,而是要预测涨跌概率。这个思路转变,是我在第一个实盘项目里用真金白银换来的教训。
1.3 课程目标与学习路径
这门课的目标很明确:让你能独立完成一个完整的股价涨跌预测系统。从数据获取到模型部署,每一步我都会带着你走一遍。
学习路径是这样的:
- 基础篇:Python数据处理、特征工程、时间序列基础
- 模型篇:逻辑回归、随机森林、XGBoost、LSTM,每个模型我都会讲清楚「什么时候用」和「什么时候别用」
- 实战篇:回测框架搭建、过拟合检测、实盘注意事项
- 进阶篇:多因子融合、注意力机制、模型解释性
嗯,这里要注意:不要跳着学。我见过太多人直接跳到LSTM,结果连特征标准化都没做对,模型跑出来全是噪音。
1.4 所需工具与环境准备
工欲善其事,必先利其器。咱们先把环境搭好。
Python环境
我建议用Python 3.8以上版本。别用2.7了,很多库已经不兼容了。
# 推荐使用Anaconda管理环境
conda create -n stock_ml python=3.9
conda activate stock_ml
Jupyter Notebook
Jupyter是咱们的主力工具。为什么?因为做数据分析时,你需要边写代码边看结果,Jupyter的交互式体验是最好的。
pip install jupyter notebook
jupyter notebook
常用库一览
| 库名 | 用途 | 安装命令 |
|---|---|---|
| pandas | 数据处理、时间序列操作 | pip install pandas |
| numpy | 数值计算 | pip install numpy |
| scikit-learn | 传统机器学习模型 | pip install scikit-learn |
| xgboost | 梯度提升树 | pip install xgboost |
| tensorflow/keras | 深度学习模型 | pip install tensorflow |
| matplotlib/seaborn | 数据可视化 | pip install matplotlib seaborn |
| yfinance | 获取股票数据 | pip install yfinance |
小技巧:我习惯把所有库的安装命令写在一个requirements.txt里,这样换环境时一键安装。省心。
1.5 知识体系总览
下面这张图,是我自己总结的课程知识体系。你可以把它当作地图,学完一章回来看看,就知道自己走到哪了。
避坑指南:我曾经在第一个项目里,用全部历史数据训练模型,结果回测收益率高得离谱。后来才发现,我把未来数据泄露到训练集里了。记住:时间序列数据绝对不能随机打乱,必须按时间顺序分割。
1.6 写在开始之前
这门课不会教你「一夜暴富」的方法。如果有人这么承诺,那一定是骗子。
机器学习预测股价,本质上是在寻找统计意义上的规律。它不能保证每次都对,但能让你在概率上占据优势。我做了这么多年,最好的策略也就是60%左右的胜率,配合好仓位管理,才能稳定盈利。
好了,环境搭好了吗?下一章我们开始真正动手——获取数据、做第一个特征、跑第一个模型。到时候你会发现,其实没那么难。
公众号:蓝海资料掘金营,微信deep3321