Day 7 完整教程第一周复习与模型综合比较 目录第一周知识点回顾模型比较方法论评估指标的深层理解模型选择策略量化交易中的模型评估完整编程实战多模型对比第一部分第一周知识点回顾2小时理论1.1 Day 1机器学习基础与评估指标核心概念监督学习、无监督学习、强化学习的区别过拟合训练好测试差欠拟合两者都差数据集划分训练集→验证集→测试集按时间顺序评估指标回归MSE、MAE、R²分类准确率、精确率、召回率、F1、AUC量化要点时间序列数据必须按时间划分不能随机打乱AUC比准确率更适合不平衡数据1.2 Day 2线性回归与正则化核心算法最小二乘法解析解β(XTX)−1XTyβ (X^TX)^{-1}X^Tyβ(XTX)−1XTy梯度下降迭代优化β:β−α∇J(β)β : β - α∇J(β)β:β−α∇J(β)正则化Ridge (L2)JMSEλ∑βj2J \text{MSE} λ \sum β_j^2JMSEλ∑βj2​系数收缩Lasso (L1)JMSEλ∑∣βj∣J \text{MSE} λ \sum| β_j|JMSEλ∑∣βj​∣稀疏解量化应用多因子模型的因子加权收益率预测的基准模型1.3 Day 3逻辑回归与分类核心原理Sigmoid函数p1/(1e−z)p 1/(1e^{-z})p1/(1e−z)将线性输出转为概率决策边界z0z 0z0即βTx0β^Tx 0βTx0线性交叉熵损失L−[ylog⁡(p)(1−y)log⁡(1−p)]L -[y \log(p) (1-y)\log(1-p)]L−[ylog(p)(1−y)log(1−p)]技术指标RSI动量指标超买(70)/超卖(30)MACD趋势跟踪金叉/死叉信号1.4 Day 4分类评估深入ROC曲线X轴FPRY轴TPRAUC随机正样本排在负样本前的概率优点不受类别不平衡影响PR曲线X轴召回率Y轴精确率更适合极度不平衡数据阈值选择最大化F1平衡精确率和召回率成本最小化根据业务成本矩阵约束优化给定精确率/召回率下限1.5 Day 5KNN与相似度核心原理基于实例的学习无需训练分类多数投票回归平均距离度量欧氏距离∑(xi−yi)2\sqrt{\sum(x_i-y_i)^2}∑(xi​−yi​)2​曼哈顿距离∑∣xi−yi∣\sum|x_i-y_i|∑∣xi​−yi​∣余弦相似度关注方向K值选择小K过拟合大K欠拟合交叉验证选择最佳K维度灾难高维空间距离失效缓解方法PCA降维、特征选择1.6 Day 6决策树分裂准则信息增益ID3GainH(S)−H(S∣A)\text{Gain} H(S) - H(S|A)GainH(S)−H(S∣A)基尼系数CARTGini1−∑pi2\text{Gini} 1 - \sum p_i^2Gini1−∑pi2​过拟合控制预剪枝max_depth, min_samples_split后剪枝成本复杂度剪枝 (ccp_alpha)优点可解释性强、自动特征选择缺点容易过拟合、不稳定1.7 第一周核心公式总结模型核心公式损失函数超参数线性回归yβTxy β^TxyβTxMSEα (正则化)逻辑回归pσ(βTx)p σ(β^Tx)pσ(βTx)交叉熵C (正则化)KNN距离度量-K, metric决策树树结构基尼/熵max_depth第二部分模型比较方法论2.1 为什么要比较模型目的找到最适合当前问题的模型理解不同模型的优缺点为集成学习提供基础避免一刀切的选择2.2 比较的维度维度说明评估方式预测性能准确率、AUC等测试集评估稳定性方差大小交叉验证训练速度拟合时间计时预测速度推理时间计时可解释性能否理解决策过程定性评估内存消耗存储需求模型大小2.3 公平比较的原则必须遵守相同的数据集划分相同的评估指标相同的随机种子对每个模型进行适当的超参数调优常见陷阱数据泄露用未来信息训练测试集污染反复使用测试集调参比较不匹配的指标2.4 统计显著性检验为什么需要一个模型AUC比另一个高0.01是真的更好还是随机波动方法配对t检验比较同一测试集上的预测差异McNemar检验比较分类器的错误模式DeLong检验比较两个AUC的差异fromscipy.statsimportttest_rel# 配对t检验t_stat,p_valuettest_rel(pred1,pred2)ifp_value0.05:print(两个模型有显著差异)第三部分评估指标的深层理解3.1 不同场景下的指标选择应用场景推荐指标原因涨跌预测平衡准确率、AUC直观涨跌预测不平衡AUC、F1不受不平衡影响收益率预测MSE、MAE回归任务信号质量要求高精确率减少误报抓住机会重要召回率减少漏报策略比较夏普比率风险调整后收益3.2 指标之间的权衡精确率 ↑ → 阈值 ↑ → 召回率 ↓ 召回率 ↑ → 阈值 ↓ → 精确率 ↓ F1分数 2 * (P * R) / (P R) # 平衡两者3.3 超越单一指标多指标评估矩阵模型准确率精确率召回率F1AUC训练时间(s)推理时间(ms)LR0.720.680.650.660.750.10.01KNN0.700.660.630.640.7300.5DT0.710.670.640.650.740.050.001选择建议追求最高AUC → 选择AUC最高的追求可解释性 → 选择LR或DT追求推理速度 → 选择DT或LR追求稳定性 → 选择CV方差小的第四部分模型选择策略4.1 没有免费午餐定理没有任何一个模型在所有问题上都优于其他模型。含义需要针对具体问题选择模型简单模型可能是最好的起点复杂模型不一定更好4.2 模型选择流程1. 理解问题分类/回归数据规模特征类型 ↓ 2. 选择候选模型2-5个代表性模型 ↓ 3. 交叉验证评估同一数据划分 ↓ 4. 多指标比较不只看一个指标 ↓ 5. 选择最佳模型或集成4.3 模型选择决策树# 伪代码ifn_samples100:ifn_features10:recommend逻辑回归 / 朴素贝叶斯else:recommend线性回归 正则化 / SVMelifn_samples10000:ifneed_interpretability:recommend决策树 / 逻辑回归else:recommend随机森林 / XGBoost / LightGBMelse:ifneed_interpretability:recommend逻辑回归 / 决策树else:recommend随机森林 / SVM第五部分量化交易中的模型评估5.1 回测与模型评估的区别方面模型评估策略回测关注点预测准确率收益、风险时间框架样本外预测完整交易周期考虑因素特征、标签交易成本、滑点输出准确率、AUC夏普比率、回撤5.2 量化模型评估的特殊性1. 时间序列特殊性必须按时间划分不能随机使用TimeSeriesSplit交叉验证2. 过拟合风险更高金融数据信噪比低需要严格的样本外测试3. 业务指标更重要夏普比率 准确率最大回撤 AUC5.3 量化模型的评估框架defevaluate_quant_model(model,X_train,X_test,y_train,y_test,prices):量化模型评估框架# 1. 基础预测评估y_predmodel.predict(X_test)y_probamodel.predict_proba(X_test)[:,1]ifhasattr(model,predict_proba)elseNone# 2. 分类指标metrics{accuracy:accuracy_score(y_test,y_pred),precision:precision_score(y_test,y_pred),recall:recall_score(y_test,y_pred),f1:f1_score(y_test,y_pred),auc:roc_auc_score(y_test,y_proba)ify_probaisnotNoneelseNone}# 3. 策略指标假设根据预测信号交易signalsy_proba0.5ify_probaisnotNoneelsey_pred returnsprices.pct_change().shift(-1)strategy_returnssignals*returns sharpestrategy_returns.mean()/strategy_returns.std()*np.sqrt(252)# 4. 稳定性评估cv_scorescross_val_score(model,X_train,y_train,cv5,scoringroc_auc)return{prediction_metrics:metrics,strategy_sharpe:sharpe,cv_auc_mean:cv_scores.mean(),cv_auc_std:cv_scores.std()}