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

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

相关推荐
Gary Studio2 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice2 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
lingggggaaaa2 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东2 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗3 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
AI视觉网奇4 小时前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
ZH15455891317 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
编程小白20268 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
学历真的很重要8 小时前
【系统架构师】第二章 操作系统知识 - 第二部分:进程与线程(补充版)
学习·职场和发展·系统架构·系统架构师