【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 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
我爱cope3 天前
【操作系统 | 计算机硬件:CPU、内存与 I/O 如何支撑操作系统?】
学习·操作系统