9.1 基础知识
9.1.1 偏差-方差权衡
记\(y=f(x)+\varepsilon, \; E(\varepsilon)=0\),\(f\)表示真实模型,\(\hat f\)是模型某次训练得到的结果,\(E(\hat f)\)表示训练模型的期望表现。
\[ \begin{aligned} E[(\hat f-y)^2] &= E[(\hat f - E(\hat f) + E(\hat f)-y)^2] \\ &= E[(\hat f - E(\hat f))^2] + E[(E(\hat f)-y)^2] + 2E[(\hat f - E(\hat f))(E(\hat f)-y)] \\ &= E[(\hat f - E(\hat f))^2] + E[(E(\hat f)-y)^2] \\ &= E[(\hat f - E(\hat f))^2] + E[(E(\hat f)-f-\varepsilon)^2] \\ &= E[(\hat f - E(\hat f))^2] + E[(E(\hat f) - f)^2] + \varepsilon^2 \end{aligned} \]
故模型的期望泛化错误率可拆解为方差+偏差+噪声
9.1.2 评价指标
- 分类问题
- 准确率
\[ Accuracy = \frac{TP + TN}{TP + TN + FP +FN} \]
- 精确率(查准率):有没有误报
\[ Precision = \frac{TP}{TP+FP} \]
- 召回率(查全率):有没有漏报
\[ Recall = \frac{TP}{TP+FN} \]
- F1与\(F_\beta\)
\[ F1 = \frac{2*Precision*Recall}{Precision + Recall} \\ F_\beta = \frac{(1+\beta^2)*Precision*Recall}{\beta^2*Precision + Recall} \]
\(0<\beta<1\)时精确率有更大影响,\(\beta>1\)时召回率有更大影响
- ROC曲线与AUC:横轴假阳率FPR,纵轴真阳率TPR,全局性能评估
\[ TPR = \frac{TP}{TP+FN} \\ FPR = \frac{FP}{FP+TN} \]
- PR曲线与AUC:横轴召回率,纵轴精确率,更关注正样本预测质量
当存在类别不平衡情况时,PR曲线相较ROC曲线更敏感,能捕捉到异常
代价曲线:引入误判代价
宏平均:对于多个混淆矩阵,先计算各个混淆矩阵的指标,再求平均
微平均:对于多个混淆矩阵,先平均各个混淆矩阵,再求指标
- 回归问题
均方误差:对异常值敏感
均方根误差:量纲与目标变量一致
平均绝对误差:对异常值不敏感
\(R^2\)与\(R^2_{adj}\)
- 其他
- AIC
\[ AIC = -2L(\hat \theta)_{max} + 2k \]
k是参数数量
- BIC
\[ BIC = -2L(\hat \theta)_{max}+ k\ln(n) \]
9.1.3 特征工程
通俗地说,模型性能的上限由“数据与特征”决定,而算法只是尽可能逼近这个上限。因此,特征工程是把“原始数据”转化为“有信息量的特征”的过程,核心目标是让模型更容易学习到规律、提高预测精度与泛化能力。
9.1.3.1 探索性数据分析
了解数据在分布、类型、统计量、缺失值、异常值、实际含义等方面的基本信息。
方法:
数据可视化
注意辛普森悖论,引入分层变量进行探索
描述性统计
专家的先验知识
相关性分析
皮尔逊相关系数、斯皮尔曼秩相关系数(非参)、肯德尔秩相关系数(非参,有序变量)、列联表检验
9.1.3.2 数据预处理
缺失值
删除:删除记录或者直接删除特征
填充:用均值、中位数、众数、模型预测值、插值等方法进行填充
naniar包用于可视化缺失值,如vis_miss()、miss_var_summary()、miss_case_summary()
异常值
先要检查指标的口径与定义是否不一致。
识别:箱线图与四分位距IQR、Z-score、孤立森林
处理:删除、裁剪、数据分箱
9.1.3.3 特征构造
通过组合、聚合或数学操作生成新的特征。
取对数、取平方等数学变换
统计特征:如取均值、中位数、最值等
业务特征,如根据总量指标与人数指标构建人均指标
例如美团比赛中,给出骑手的基础指标(准时单量、拒绝单量、完成单量、开工时长、有单时长),就可以额外拓展出更能评价骑手表现的指标(准时率、拒绝率、工作效率、有单时长占比等指标)
又如要想让xgboost具有时序预测能力,可在特征中添加因变量的滞后项
- 数据分箱