【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)

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

相关推荐
V搜xhliang024621 小时前
AI智能体的数据安全与合规实践
人工智能·学习·数据分析·自动化·ai编程
无敌的牛21 小时前
redis学习过程
数据库·redis·学习
旅僧1 天前
Π环境部署(运行 且 无理论讲解)
学习
jushi89991 天前
Lucas Chess R国际象棋、中国象棋、日本将棋、五子棋训练学习工具游戏软件
学习
自传.1 天前
尚硅谷 Vibe Coding|第一章 AI 编程基础理论 学习笔记
笔记·学习·尚硅谷·vibe coding
吃好睡好便好1 天前
改变时间轴的跨度
学习·生活
fox_lht1 天前
15.3.改进我们之前的输入、输出项目
开发语言·后端·学习·rust
chase。1 天前
【学习笔记】SimpleVLA-RL:通过强化学习扩展 VLA 训练
笔记·学习
C语言小火车1 天前
什么时候用智能指针?什么时候用裸指针?
c语言·c++·学习·指针
AOwhisky1 天前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算