halo 的技术博客

返回

机器学习特征工程:构建有效的量化因子#

量化投资中,特征工程往往比模型选择更重要。好的特征应该具备:经济学逻辑、稳健性、低相关性和预测能力。

量化特征的四大来源#

1. 价格衍生特征#

基于历史价格序列构造的技术指标:

2. 财务基本面特征#

从财报数据提取的估值、盈利、成长指标:

  • 估值类:PE、PB、PS、EV/EBITDA
  • 盈利类:ROE、ROA、毛利率、净利率
  • 成长类:营收增长率、净利润增长率
  • 质量类:应计项目、盈余质量、资产周转率

3. 另类数据特征#

社交媒体、新闻情感、卫星图像等非传统数据:

4. 市场微观结构特征#

订单流、买卖价差、成交分布等高频数据特征。

特征有效性检验#

构建特征后必须进行严格检验:

1. 单因子检验#

2. 多因子相关性分析#

3. 因子衰减分析#

测试因子预测能力随时间衰减的速度。

特征选择方法#

1. 递归特征消除(RFE)#

from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression

def rfe_feature_selection(X, y, n_features=20):
    """递归特征消除"""
    estimator = LinearRegression()
    selector = RFE(estimator, n_features_to_select=n_features)
    selector.fit(X, y)
    
    return X.columns[selector.support_]
python

2. 基于模型的特征重要性#

from sklearn.ensemble import RandomForestRegressor

def rf_feature_importance(X, y, threshold=0.01):
    """随机森林特征重要性筛选"""
    rf = RandomForestRegressor(n_estimators=100, random_state=42)
    rf.fit(X, y)
    
    importances = rf.feature_importances_
    selected = X.columns[importances > threshold]
    
    return selected, importances
python

实战案例:整合特征工程流程#

特征工程流程

完整特征工程流程:

  1. 特征生成:创建100+原始特征
  2. 数据清洗:处理缺失值、异常值
  3. 特征变换:标准化、正态化、分箱
  4. 有效性检验:IC分析、分组回测
  5. 特征选择:去除冗余、保留有效
  6. 模型训练:使用精选特征训练模型

常见陷阱与避免方法#

  1. 过拟合:使用样本外测试、交叉验证
  2. 数据挖掘偏差:控制特征搜索次数
  3. 前视偏差:确保特征计算仅使用历史数据
  4. 幸存者偏差:包含已退市股票

总结#

有效的特征工程是量化策略成功的关键。坚持经济学逻辑优先、统计验证为辅的原则,避免纯粹的数据挖掘。

特征重要性可视化

机器学习特征工程:构建有效的量化因子
https://blog.halo26812.eu.org/blog/2026-06-04-feature-engineering-ml
Author halo
Published at 2026年6月4日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨