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

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

相关推荐
我命由我1234521 分钟前
ReAct 循环
学习·ai·产品运营·学习方法·ai编程·ai写作·产品
for_ever_love__24 分钟前
LangGraph Checkpointer:持久化、断点续跑与多轮记忆
服务器·数据库·学习·持久化·langgraph·checkpointer·断点续跑
学电子她就能回来吗32 分钟前
LeetCode Hot 100|滑动窗口专题零基础学习笔记
笔记·学习·leetcode
小雪崩1 小时前
嵌入式学习 day68:驱动——SPI总线
学习
其实防守也摸鱼1 小时前
CTF Web 6 题全解 Writeup
linux·sql·学习·算法·安全·ctf·xss
Xudde.1 小时前
DC-1 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
浪子不回头4152 小时前
同花顺一面
学习
小王师傅662 小时前
LangChain 系统化学习入门
学习·langchain
dualven_in_csdn2 小时前
【网络安全】fscan的学习与使用
网络·学习
skywalk81632 小时前
Monty / 千脑理论(Thousand Brains Project)学习笔记
笔记·学习·monty·千脑理论