🗓️ 21天机器学习核心算法学习计划(量化方向)
每天4小时 ,总计3周(21天),每天分为:
- 理论+推导(1.5小时)
- 编程实战(2小时)
- 复盘与笔记(0.5小时)
目标是:21天后,能够独立用主流机器学习算法构建量化预测模型,并理解每种算法在金融场景中的适用边界。
第一周:基础模型与线性方法
| 天数 | 学习内容 | 编程实战(金融数据) |
|---|---|---|
| Day1 | ML基础概念、过拟合/欠拟合、训练/验证/测试集划分、评估指标(MSE/MAE/R²,准确率/精确率/召回率/F1/AUC) | 用make_classification模拟数据,完整走一遍训练/测试切分→训练→预测→评估流程 |
| Day2 | 线性回归原理(最小二乘、梯度下降、Ridge/Lasso正则化) | 用yfinance获取股票数据,预测次日收益率(回归),对比有无正则化的效果 |
| Day3 | 逻辑回归(Sigmoid、交叉熵损失、决策边界) | 预测次日涨跌(二分类),构造技术指标特征(RSI、MACD),输出混淆矩阵和AUC |
| Day4 | 分类评估深入(ROC曲线、PR曲线、阈值选择) | 绘制ROC曲线,找到最佳阈值(最大化F1或最小化业务成本) |
| Day5 | KNN原理(距离度量、K值选择、维度灾难) | 寻找历史相似K线组合(输入N日收益率序列,找到最相似的日期并观察后续走势) |
| Day6 | 决策树(ID3/CART、信息增益/基尼系数、剪枝参数) | 用决策树预测涨跌,可视化树结构,观察不同max_depth下的过拟合 |
| Day7 | 第一周复习与整合 | 用线性回归+逻辑回归+KNN+决策树对同一数据集预测,横向比较性能,写总结笔记 |
第二周:集成学习与SVM
| 天数 | 学习内容 | 编程实战(金融数据) |
|---|---|---|
| Day8 | 随机森林原理(Bagging、随机特征、OOB评估、特征重要性) | 用随机森林预测涨跌,输出特征重要性条形图,删除低重要性特征后重训练 |
| Day9 | 随机森林调参(n_estimators, max_depth, min_samples_split) | 用TimeSeriesSplit进行时间序列交叉验证,网格搜索最优参数 |
| Day10 | 集成学习进阶(Boosting: AdaBoost, GBDT) | 用GradientBoostingClassifier预测涨跌,对比随机森林 |
| Day11 | XGBoost/LightGBM介绍(量化领域主流工具) | 用XGBoost预测涨跌,调参(学习率、树深度、正则化),观察性能提升 |
| Day12 | SVM原理(最大间隔、软间隔C参数、核函数(线性/RBF)) | 用SVM预测市场方向,对比线性核与RBF核,用GridSearch调优C和gamma |
| Day13 | 朴素贝叶斯(高斯/多项式/伯努利)及独立性假设 | 用高斯朴素贝叶斯快速构建"极端涨跌"预警模型(将收益率离散化为5档) |
| Day14 | 第二周复习与整合 | 用随机森林+XGBoost+SVM+朴素贝叶斯对比,写"不同算法在量化预测中的优劣总结" |
第三周:无监督、神经网络与实战
| 天数 | 学习内容 | 编程实战(金融数据) |
|---|---|---|
| Day15 | KMeans聚类(肘部法则、轮廓系数、初始化问题) | 对沪深300成分股根据市盈率、市净率、ROE、换手率等因子聚类,分析每类股票的风格 |
| Day16 | PCA降维(最大方差投影、主成分可解释性) | 对20个技术指标做PCA,观察累计方差,用前3个主成分训练随机森林,对比原始特征 |
| Day17 | 神经网络入门(MLP、激活函数、反向传播、优化器) | 用sklearn.MLPClassifier预测涨跌,尝试不同隐藏层大小 |
| Day18 | 深度学习框架Keras入门(搭建、训练、回调) | 用Keras搭建3层MLP,画出训练/验证loss曲线,加入Dropout和早停防过拟合 |
| Day19 | LSTM基础(处理序列数据、解决梯度消失) | 用过去20天收盘价序列预测次日收盘价(LSTM),对比简单MLP |
| Day20 | 强化学习入门(Agent, Environment, Reward) | 用gym搭建简化交易环境(状态:持仓+价格;动作:买/卖/持有),实现随机策略 |
| Day21 | 综合实战:端到端量化策略 | 选择一个模型(随机森林/XGBoost/LSTM)预测次日涨跌→构建交易信号→回测(年化收益、夏普比率、最大回撤)→对比买入持有基准,撰写项目报告 |
📚 每日4小时高效执行指南
时间分配
| 时段 | 时长 | 内容 |
|---|---|---|
| 第一阶段 | 1.5小时 | 理论学习(视频/书籍)+ 公式推导(纸笔) |
| 第二阶段 | 2小时 | 编程实战(金融数据,完整流程) |
| 第三阶段 | 0.5小时 | 复盘笔记(写三个收获+一个待解决问题) |
每日标准流程
- 理论学习(1.5h):看视频(1.5倍速)+ 读《Sklearn官方文档》对应章节 + 用纸笔推导关键公式
- 编程实战(2h):获取金融数据 → 特征构造 → 标准化 → 按时间切分 → 训练 → 评估 → 可视化
- 复盘(0.5h):在Notebook开头写总结(算法适用场景、调参心得、量化注意点)
编程环境
bash
# 必装库
pip install numpy pandas matplotlib seaborn scikit-learn
pip install yfinance akshare # 数据源
pip install xgboost lightgbm
pip install tensorflow keras
pip install gym # 强化学习
✅ 21天结束后的能力自测
- 能独立用
sklearn完成逻辑回归、随机森林、XGBoost、SVM、KMeans、PCA的完整流程 - 能解释"为什么金融数据要用时间序列交叉验证而不是随机K折"
- 能构建至少3个技术指标特征,并用特征重要性筛选
- 能训练一个LSTM(即使效果不好,但数据窗口生成、标准化、训练流程正确)
- 能完成一个简单的回测,计算夏普比率和最大回撤,并识别出潜在的前视偏差