Day 1机器学习基础与评估指标 目录机器学习核心概念过拟合与欠拟合详解数据集划分训练/验证/测试回归评估指标MSE/MAE/R²分类评估指标准确率/精确率/召回率/F1/AUC第一部分机器学习核心概念1.5小时理论1.1 什么是机器学习定义机器学习是让计算机从数据中学习规律而不需要显式编程每个规则。三种主要类型类型定义量化交易应用监督学习数据有标签学习输入到输出的映射预测涨跌分类、预测收益率回归无监督学习数据无标签发现隐藏结构股票聚类、市场状态识别强化学习通过奖惩学习决策策略动态仓位管理、最优执行1.2 监督学习的两个子类型回归Regression预测连续值例子预测明天收盘价、预测波动率输出任意实数分类Classification预测离散类别例子预测涨/跌、判断是否异常交易输出类别标签1.3 核心术语特征Feature输入变量如过去5日收益率、成交量标签Label输出变量如次日涨跌0或1样本Sample一行数据包含特征和标签模型Model学习到的映射函数 f: 特征 → 标签第二部分过拟合与欠拟合核心概念2.1 定义欠拟合Underfitting训练集误差高 测试集误差高原因模型太简单没学到规律例子用线性模型预测复杂的非线性关系过拟合Overfitting训练集误差极低 测试集误差高原因模型太复杂记忆了噪声例子决策树不剪枝记住每个训练样本良好拟合Good Fit训练集误差适中 测试集误差接近训练集2.2 量化交易中的过拟合陷阱陷阱说明后果前视偏差使用了未来信息回测完美实盘崩溃数据窥探偏差反复测试同一数据策略只适合历史过度优化参数过于精细对微小变化敏感2.3 如何诊断过拟合学习曲线Learning Curves训练误差持续下降验证误差先降后升 → 过拟合两个误差都很高且接近 → 欠拟合两个误差都较低且接近 → 良好拟合2.4 解决过拟合的方法方法说明量化应用增加数据量更多样本使用多年历史数据降低模型复杂度减少参数限制树深度、减少特征正则化惩罚大参数Ridge/Lasso回归早停验证误差不再下降时停止神经网络训练交叉验证充分利用数据时间序列交叉验证第三部分数据集划分训练/验证/测试3.1 三种数据集的作用text完整数据集 ├── 训练集60-70%训练模型参数 ├── 验证集15-20%调超参数、模型选择 └── 测试集15-20%最终评估只能用一次3.2 为什么不能只用训练集和测试集错误做法训练 → 测试 → 调参 → 再测试信息泄露正确流程训练集训练模型验证集调超参数反复多次测试集最终评估只做一次3.3 量化交易的特殊性时间序列划分错误做法随机划分会引入前视偏差# 错误随机打乱fromsklearn.model_selectionimporttrain_test_split X_train,X_test,y_train,y_testtrain_test_split(X,y,shuffleTrue)# ❌正确做法按时间顺序划分# 正确保持时间顺序split_date2023-01-01traindf[df[date]split_date]testdf[df[date]split_date]# ✅**前世偏差Look-ahead Bias**是指在模型训练或回测过程中无意中使用了未来时间点的数据来影响当前决策导致模型表现被严重高估。普通数据样本之间相互独立可以随机打乱时间序列数据具有时间依赖性和因果关系过去影响未来3.4 时间序列交叉验证fromsklearn.model_selectionimportTimeSeriesSplit tscvTimeSeriesSplit(n_splits5)fortrain_index,test_indexintscv.split(X):# 训练集始终在测试集之前pass第四部分回归评估指标4.1 MSE均方误差公式MSE1n∑i1n(yi−y^i)2\text{MSE} \frac{1}{n}\sum_{i1}^{n}(y_i - \hat{y}_i)^2MSEn1​∑i1n​(yi​−y^​i​)2特点对异常值敏感平方放大误差量纲是原单位的平方代码fromsklearn.metricsimportmean_squared_error msemean_squared_error(y_true,y_pred)4.2 MAE平均绝对误差公式MAE1n∑i1n∣yi−y^i∣\text{MAE} \frac{1}{n}\sum_{i1}^{n}|y_i - \hat{y}_i|MAEn1​∑i1n​∣yi​−y^​i​∣特点对异常值更鲁棒量纲与原数据相同代码fromsklearn.metricsimportmean_absolute_error maemean_absolute_error(y_true,y_pred)4.3 R²决定系数公式R21−∑(yi−y^i)2∑(yi−yˉ)2R^2 1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}R21−∑(yi​−yˉ​)2∑(yi​−y^​i​)2​含义模型解释了多少比例的方差R² 1完美拟合R² 0等于只用均值预测R² 0比均值预测还差代码fromsklearn.metricsimportr2_score r2r2_score(y_true,y_pred)4.4 回归指标选择指南场景推荐指标原因异常值较多MAE更鲁棒希望惩罚大误差MSE平方放大大误差需要解释性R²标准化便于比较第五部分分类评估指标5.1 混淆矩阵Confusion Matrix预测: 正类预测: 负类实际: 正类TPFN实际: 负类FPTNTP True Positive正确预测上涨TN True Negative正确预测下跌FP False Positive误报预测涨实际跌FN False Negative漏报预测跌实际涨代码fromsklearn.metricsimportconfusion_matrix cmconfusion_matrix(y_true,y_pred)5.2 准确率Accuracy公式AccuracyTPTNTPTNFPFN\text{Accuracy} \frac{TP TN}{TP TN FP FN}AccuracyTPTNFPFNTPTN​问题类别不平衡时失效例子95%上涨5%下跌全预测上涨就有95%准确率5.3 精确率Precision公式PrecisionTPTPFP\text{Precision} \frac{TP}{TP FP}PrecisionTPFPTP​含义预测为涨的里面有多少真涨了量化应用减少误报避免虚假买入信号5.4 召回率Recall公式RecallTPTPFN\text{Recall} \frac{TP}{TP FN}RecallTPFNTP​含义真正上涨的里面预测对了多少量化应用减少漏报抓住上涨机会5.5 F1分数公式F12×Precision×RecallPrecisionRecallF1 2 \times \cfrac{\text{Precision} \times \text{Recall}}{\text{Precision} \text{Recall}}F12×PrecisionRecallPrecision×Recall​含义精确率和召回率的调和平均两者兼顾时的最佳指标5.6 ROC曲线与AUCROC曲线X轴假阳性率FPR FP / (FP TN)Y轴真阳性率TPR TP / (TP FN)曲线下方面积越大模型越好AUC值AUC 0.5随机猜测AUC 0.7-0.8可接受AUC 0.8-0.9优秀AUC 0.9可能过拟合代码fromsklearn.metricsimportroc_auc_score,roc_curve aucroc_auc_score(y_true,y_pred_proba)fpr,tpr,thresholdsroc_curve(y_true,y_pred_proba)5.7 分类指标选择指南场景推荐指标原因类别平衡准确率简单直观类别不平衡AUC或F1不受不平衡影响重视抓住机会召回率减少漏报重视信号质量精确率减少误报平衡考虑F1综合两者