【QLIB】三、学习层(一)

一、概述

学习层位于数据层之上,它的职责为:

二、两大学习范式

A. 监督学习 (Supervised Learning)

特点:离线训练 → 生成排序信号 → 用于交易

python 复制代码
# 步骤1:定义特征和标签
features = ["$close", "Mean($close, 5)", "$$roewa_q"]  # 来自 Layer 2
label = "未来5日收益率"  # 用户定义

# 步骤2:准备数据集
data_handler_config = {
    "start_time": "2008-01-01",
    "end_time": "2020-08-01",
    "fit_start_time": "2008-01-01",
    "fit_end_time": "2014-12-31",  # 训练集截止
    "instruments": "csi500"        # 股票池
}

# 步骤3:构建数据集(3段分离)
dataset = DatasetH(
    handler=Alpha158(data_handler_config),  # 特征提取器
    segments={
        "train": ("2008-01-01", "2014-12-31"),    # 模型训练
        "valid": ("2015-01-01", "2016-12-31"),    # 模型验证
        "test": ("2017-01-01", "2020-08-01")      # 模型测试
    }
)

# 步骤4:训练模型
model = LGBModel(
    loss="mse",
    num_leaves=210,
    learning_rate=0.0421
)
model.fit(dataset)

# 步骤5:预测信号
pred_score = model.predict(dataset, segment="test")

B. 强化学习 (Reinforcement Learning)

特点:在线学习 → Agent 交互式决策 → 持续改进

python 复制代码
# 通过与 Execution Env (Layer 0 的环境) 交互学习

class PortfolioAgent:
    """投资组合管理 agent"""
    def learn(self, states, actions, rewards):
        # 优化策略:最大化累积奖励
        pass

class OrderExecutionAgent:
    """订单执行 agent"""
    def learn(self, order_state, execution_path, commission):
        # 优化执行策略:最小化滑点成本
        pass

# 支持嵌套执行:
# - Level 1: 投资组合 agent 决定买卖什么、多少
# - Level 2: 订单执行 agent 决定如何执行这个订单

三、完整工作流程

四、YAML 配置示例

powershell 复制代码
task:
  model:
    class: LGBModel                          # 模型类型
    module_path: qlib.contrib.model.gbdt
    kwargs:
      loss: mse                              # 损失函数
      num_leaves: 210                        # 叶子数
      learning_rate: 0.2                     # 学习率
      max_depth: 8                           # 树深度
  
  dataset:
    class: DatasetH                          # 数据集类
    module_path: qlib.data.dataset
    kwargs:
      handler:
        class: Alpha158                      # 特征处理器
        module_path: qlib.contrib.data.handler
        kwargs:
          start_time: 2008-01-01
          end_time: 2020-08-01
          fit_end_time: 2014-12-31           # 训练截止
          instruments: csi300                # 股票池
      segments:
        train: [2008-01-01, 2014-12-31]      # 训练集
        valid: [2015-01-01, 2016-12-31]      # 验证集
        test: [2017-01-01, 2020-08-01]       # 测试集

五、模型库 (Model Zoo)

下一章详细讲一下每个模型

相关推荐
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J3 天前
从“Hello World“ 开始 C++
c语言·c++·学习