概率、基线与公平的检验
逻辑回归把线性得分 z=b₀+b₁x₁+…+bₚxₚ 变成概率 p=1/(1+e^(-z))。得分是赔率的对数:lnp/(1-p)=z,所以 xⱼ 每增加一个单位,上涨日的赔率乘以 e^bⱼ。在前面放一个 StandardScaler(放进 Pipeline 里),单位就变成一个标准差,不同特征的比值比也就可以比较。模型通过最小化对数损失 -1/nΣ(yln p+(1-y)ln(1-p)) 加上由 C 控制的惩罚来拟合(C 小表示惩罚强)。拟合后的对象用 predict_proba 给出概率,用 predict 给出阈值 0.5 处的类别。
方向模型必须与“什么都不做”能达到的水平比较。SPY 约 55% 的日子是上涨日,所以一直预测“上涨”就有 55% 的命中率:这就是基线,而且它必须来自训练集标签,因为预测时测试集标签是未知的。准确率取决于阈值,AUC 则不然,它等于随机一个上涨日得分高于随机一个下跌日的概率(0.5 表示毫无能力)。对数损失惩罚自信的错误。用收盘时已知的四个特征、按时间划分(70% 训练,之后 30% 测试),实验中的模型准确率为 55.3%,基线为 55.1%,AUC 为 0.501,对数损失为 0.688,仅略低于抛硬币的 0.690。略小于 1 的比值比说明昨天的上涨会稍微降低再次上涨的赔率,这是真实但无法交易的效应。
- 与来自训练标签的基线比较:只预测多数类就已有约 55%。
- AUC 与对数损失不依赖单一阈值;0.5 和 0.69 是毫无能力的取值。
- 在管道内标准化,则 e^bⱼ 就是每个标准差的比值比。
实验:评分内容
- 按时间划分10 分
- 管道10 分
- 三个评分20 分
- 多数类基线15 分
- 比值比15 分
- SPY 方向研究30 分