Panda_quantflow源码分析之Panda ML 模块深度分析
  大道至简 2026年02月12日 86 0

Panda ML 模块深度分析

src/panda_ml 定义了量化工作流中机器学习任务的基础抽象。它提供了一套标准化的接口(Node),用于构建数据预处理、模型训练和预测的流水线。

1. 核心设计理念

该模块借鉴了 scikit-learnfit/transform 设计模式,并将计算单元抽象为工作流节点(BaseNode)。

  • DataNode: 专注于数据清洗和特征工程,支持 fit(统计分布)和 transform(数据转换)。
  • ModelNode: 专注于模型生命周期,支持 fit(离线训练)、predict(在线推断)和 update(增量学习)。

2. 核心类与文件详解

2.1 节点抽象基类

  • 文件: base_node.py

    • : BaseNode(ABC)
    • 职责: 定义所有 ML 节点的顶层契约。
    • 接口: execute(context) - 所有子类必须实现的执行入口。
  • 文件: data_node.py

    • : DataNode(BaseNode)
    • 职责: 数据处理节点基类。
    • 逻辑: execute 方法会根据上下文自动调用 fittransform
  • 文件: mode_node.py (应为 model_node.py)

    • : ModelNode(BaseNode)
    • 职责: 算法模型节点基类。
    • 逻辑: 支持 train (调用 fit)、predict (调用 predict) 和 update (调用 update) 三种运行模式。

2.2 装饰器系统

  • 文件: decorators.py
    • 功能: 提供 @node_spec 装饰器。
    • 作用: 为节点类注入元数据(名称、描述、输入输出 Schema),配合插件系统的注册机制使用。

2.3 算法实现示例

  • 文件: importance_spearman_factor_combiner.py
    • 功能: 这是一个具体的算法实现,用于因子合成
    • 算法: 基于 Spearman 相关系数计算因子的动态权重。
    • 流程:
      1. fit: 计算 Feature Importance 与未来收益的 RankIC。
      2. compute_weights: 根据 IC 值分配权重。
      3. transform: 对多因子进行加权求和,输出复合因子。

3. 依赖关系

  • 核心依赖: abc (抽象基类), pandas (数据处理), numpy, scipy (统计计算)。
  • 交互: 该模块主要被 panda_plugins 中的 ML 节点继承和使用。
最后一次编辑于 2026年02月12日 0

暂无评论

推荐阅读