随机森林从46%到61%:交互特征是“破局点”
随机森林基线准确率46%,调了三天超参勉强到51%。直到我开始构造交互特征,才真正突破。
坑1:单特征调参,天花板很明显
随机森林第一版用了4个基础特征:PE分位、PB分位、涨跌幅、成交量。训练完准确率46.16%,比随机猜测高一点。
然后开始调参:n_estimators从100调到200,max_depth从10调到20。准确率勉强到51%,但再调也上不去了。
根本原因:
模型只看到单个特征的影响,看不到特征之间的“化学反应”。比如“PE分位高+波动率大”可能意味着风险极高,但单个特征各自看都不明显。
解决方案:
构造交互特征——把两个特征相乘,让模型能同时看到它们的组合效应。
关键突破:
构造了三个交互特征:PE分位×波动率、PB分位×波动率、PE分位×PB分位。
# 交互特征构造
data['pe_volatility'] = data['pe_percentile'] * data['volatility']
data['pb_volatility'] = data['pb_percentile'] * data['volatility']
data['pe_pb_interaction'] = data['pe_percentile'] * data['pb_percentile']
加上交互特征后,特征从4维变成7维,然后使用RandomizedSearchCV自动搜索最优超参数组合。
| 版本 | 特征数 | 准确率 | 关键动作 |
|---|---|---|---|
| V1.0 | 4维 | 46.16% | 基线 |
| V1.5 | 7维 | 约55% | 加入交互特征 |
| V2.0 | 11维 | 约58% | 扩充基础特征 |
| V2.2 | 14维 | 61.17% | RandomizedSearchCV调优 |
最终V2.2版本14维特征(11基础+3交互),测试集准确率61.17%,macro召回和F1均超过61%。
Top5核心特征:
-
PB分位
-
PE分位
-
PE分位×波动率(交互特征)
-
涨跌幅
-
成交量
踩坑总结:
-
单特征有天花板,交互特征是突破的关键。
-
调参(RandomizedSearchCV)能帮你找到更好的组合,但它只能在已有特征的基础上优化。
-
先扩特征,再调参——顺序反过来效果会差很多。

浙公网安备 33010602011771号