From 282fe1fef5edb0b6e87d1b8622d12c1889028eac Mon Sep 17 00:00:00 2001 From: liaozhaorun <1300336796@qq.com> Date: Sat, 14 Mar 2026 00:19:03 +0800 Subject: [PATCH] =?UTF-8?q?docs(AGENTS):=20=E6=96=B0=E5=A2=9EAI=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E5=87=86=E5=88=99=E8=A7=84=E8=8C=83=20-=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=A3=E7=A0=81=E5=AD=98=E6=94=BE=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E8=A7=84=E5=88=99=EF=BC=8C=E5=BC=BA=E5=88=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=AD=98=E6=94=BE=E4=BA=8E=20src/=20=E6=88=96=20tests/=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=20-=20=E6=B7=BB=E5=8A=A0=20Tests=20=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E4=BB=A3=E7=A0=81=E8=BF=90=E8=A1=8C=E8=A7=84=E5=88=99?= =?UTF-8?q?=EF=BC=8C=E5=BC=BA=E5=88=B6=E4=BD=BF=E7=94=A8=20pytest=20?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81=20-=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20learn=5Fto=5Frank=20=E5=AE=9E=E9=AA=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=EF=BC=9A=E8=B0=83=E6=95=B4=E5=9B=A0=E5=AD=90?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=92=8C=E5=A4=84=E7=90=86=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20-=20=E4=BF=AE=E5=A4=8D=20schema=5Fcache=20=E8=A1=A8?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E7=BC=93=E5=AD=98=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 68 +++++++ src/experiment/learn_to_rank.ipynb | 291 ++++++++++++++--------------- src/experiment/learn_to_rank.py | 91 ++++----- src/experiment/regression.ipynb | 46 +++-- src/factors/engine/schema_cache.py | 20 +- 5 files changed, 302 insertions(+), 214 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 3561142..4a0d80c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -297,6 +297,24 @@ storage = Storage(read_only=True) # 默认只读 storage = Storage(read_only=False) ``` +### 财务数据表与 PIT 策略 + +**重要**: 并非所有财务数据表都支持 PIT(Point-In-Time)策略。 + +**支持 PIT 的财务表**(有 `f_ann_date` 列): +- `financial_income` - 利润表 +- `financial_balance` - 资产负债表 +- `financial_cashflow` - 现金流量表 + +**不支持 PIT 的财务表**(只有 `ann_date` 列): +- `financial_fina_indicator` - 财务指标表 + +**因子字段路由规则**: +因子引擎在动态路由字段时会自动识别财务表。对于同时存在于多个表的字段(如 `ebit`): +- 如果字段存在于 `fina_indicator` 表和其他财务表,会优先路由到支持 PIT 的表 +- `fina_indicator` 表由于缺少 `f_ann_date`,**被排除在动态字段路由之外** +- 这确保了所有财务数据都能正确应用 PIT 策略,避免未来数据泄露 + ### 线程与并发 - 对 I/O 密集型任务(API 调用)使用 `ThreadPoolExecutor` - 实现停止标志以实现优雅关闭:`threading.Event()` @@ -869,6 +887,56 @@ LSP 报错:Syntax error on line 45 ❌ 错误做法:删除文件重新写、或者忽略错误继续 ``` +### 代码存放位置规则 + +**⚠️ 强制要求:所有代码必须存放在 `src/` 或 `tests/` 目录下。** + +1. **源代码位置** + - 所有正式功能代码必须放在 `src/` 目录下 + - 按照模块分类存放(`src/data/`、`src/factors/`、`src/training/` 等) + +2. **测试代码位置** + - 所有测试代码必须放在 `tests/` 目录下 + - **临时测试代码**:任何临时性、探索性的测试脚本也必须写在 `tests/` 目录下 + - 禁止在项目根目录或其他位置创建临时测试文件 + +3. **禁止事项** + - ❌ 禁止在项目根目录创建 `.py` 文件 + - ❌ 禁止在 `docs/`、`config/`、`data/` 等目录存放代码文件 + - ❌ 禁止创建 `test_xxx.py`、`tmp_xxx.py`、`scratch_xxx.py` 等临时文件在项目根目录 + +4. **正确示例** + ``` + ✅ src/data/new_feature.py # 新功能代码 + ✅ tests/test_new_feature.py # 正式测试 + ✅ tests/scratch/experiment.py # 临时实验代码(在 tests 下) + ``` + +### Tests 目录代码运行规则 + +**⚠️ 强制要求:`tests/` 目录下的代码必须使用 pytest 指令来运行。** + +1. **运行方式** + - ✅ **必须**:使用 `uv run pytest tests/xxx.py` 运行测试文件 + - ❌ **禁止**:直接使用 `uv run python tests/xxx.py` 或 `python tests/xxx.py` + +2. **原因说明** + - pytest 提供测试发现、断言重写、fixture 支持等测试专用功能 + - 统一使用 pytest 确保测试代码在标准测试框架下执行 + - 便于集成测试报告、覆盖率统计等功能 + +3. **正确示例** + ```bash + # ✅ 正确:使用 pytest 运行 + uv run pytest tests/test_sync.py + uv run pytest tests/test_sync.py::TestDataSync + uv run pytest tests/ -v + + # ❌ 错误:直接使用 python 运行 + uv run python tests/test_sync.py + python tests/test_sync.py + ``` + ### Emoji 表情禁用规则 **⚠️ 强制要求:代码和测试文件中禁止出现 emoji 表情。** diff --git a/src/experiment/learn_to_rank.ipynb b/src/experiment/learn_to_rank.ipynb index 459a5ac..40422a4 100644 --- a/src/experiment/learn_to_rank.ipynb +++ b/src/experiment/learn_to_rank.ipynb @@ -24,8 +24,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:03.291580Z", - "start_time": "2026-03-13T14:14:01.936601Z" + "end_time": "2026-03-13T14:38:49.168405Z", + "start_time": "2026-03-13T14:38:47.799348Z" } }, "cell_type": "code", @@ -66,19 +66,19 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:03.306725Z", - "start_time": "2026-03-13T14:14:03.299251Z" + "end_time": "2026-03-13T14:38:49.197280Z", + "start_time": "2026-03-13T14:38:49.189632Z" } }, "cell_type": "code", "source": [ - "def create_factors_with_metadata(\n", + "def register_factors(\n", " engine: FactorEngine,\n", " selected_factors: List[str],\n", " factor_definitions: dict,\n", " label_factor: dict,\n", ") -> List[str]:\n", - " \"\"\"注册因子(SELECTED_FACTORS 从 metadata 查询,FACTOR_DEFINITIONS 用表达式注册)\"\"\"\n", + " \"\"\"注册因子(selected_factors 从 metadata 查询,factor_definitions 用 DSL 表达式注册)\"\"\"\n", " print(\"=\" * 80)\n", " print(\"注册因子\")\n", " print(\"=\" * 80)\n", @@ -287,8 +287,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:03.317598Z", - "start_time": "2026-03-13T14:14:03.314983Z" + "end_time": "2026-03-13T14:38:49.207900Z", + "start_time": "2026-03-13T14:38:49.204530Z" } }, "cell_type": "code", @@ -350,14 +350,14 @@ " \"return_5_rank\",\n", " \"EP_rank\",\n", " \"pe_expansion_trend\",\n", - " \"value_price_divergence\",\n", + " # \"value_price_divergence\",\n", " \"active_market_cap\",\n", - " \"ebit_rank\",\n", + " # \"ebit_rank\",\n", "]\n", "\n", "# 因子定义字典(完整因子库)\n", "FACTOR_DEFINITIONS = {\n", - " # \"turnover_rate_volatility\": \"ts_std(turnover_rate, 20)\"\n", + " # \"turnover_rate_volatility\": \"ts_std(log(turnover_rate), 20)\"\n", "}\n", "\n", "# Label 因子定义(不参与训练,用于计算目标)\n", @@ -376,8 +376,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:03.327552Z", - "start_time": "2026-03-13T14:14:03.321870Z" + "end_time": "2026-03-13T14:38:49.216389Z", + "start_time": "2026-03-13T14:38:49.211732Z" } }, "cell_type": "code", @@ -416,17 +416,6 @@ "}\n", "\n", "\n", - "# 特征列(用于数据处理器)\n", - "FEATURE_COLS = SELECTED_FACTORS\n", - "\n", - "# 数据处理器配置\n", - "PROCESSORS = [\n", - " NullFiller(feature_cols=FEATURE_COLS, strategy=\"mean\"),\n", - " Winsorizer(feature_cols=FEATURE_COLS, lower=0.01, upper=0.99),\n", - " StandardScaler(feature_cols=FEATURE_COLS),\n", - "]\n", - "\n", - "\n", "# 股票池筛选函数\n", "def stock_pool_filter(df: pl.DataFrame) -> pl.Series:\n", " \"\"\"股票池筛选函数(单日数据)\n", @@ -473,8 +462,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:25.239464Z", - "start_time": "2026-03-13T14:14:03.331272Z" + "end_time": "2026-03-13T14:39:02.072976Z", + "start_time": "2026-03-13T14:38:49.220376Z" } }, "cell_type": "code", @@ -489,7 +478,7 @@ "\n", "# 2. 使用 metadata 定义因子\n", "print(\"\\n[2] 定义因子(从 metadata 注册)\")\n", - "feature_cols = create_factors_with_metadata(\n", + "feature_cols = register_factors(\n", " engine, SELECTED_FACTORS, FACTOR_DEFINITIONS, LABEL_FACTOR\n", ")\n", "\n", @@ -518,10 +507,14 @@ "print(f\"[配置] 目标变量: {target_col}({N_QUANTILES}分位数)\")\n", "\n", "# 6. 创建排序学习模型\n", - "model: LightGBMLambdaRankModel = LightGBMLambdaRankModel(params=MODEL_PARAMS)\n", + "model = LightGBMLambdaRankModel(params=MODEL_PARAMS)\n", "\n", - "# 7. 创建数据处理器\n", - "processors = PROCESSORS\n", + "# 7. 创建数据处理器(使用函数返回的完整特征列表)\n", + "processors = [\n", + " NullFiller(feature_cols=feature_cols, strategy=\"mean\"),\n", + " Winsorizer(feature_cols=feature_cols, lower=0.01, upper=0.99),\n", + " StandardScaler(feature_cols=feature_cols),\n", + "]\n", "\n", "# 8. 创建数据划分器\n", "splitter = DateSplitter(\n", @@ -619,20 +612,18 @@ " - return_5_rank\n", " - EP_rank\n", " - pe_expansion_trend\n", - " - value_price_divergence\n", " - active_market_cap\n", - " - ebit_rank\n", "\n", "注册特征因子(表达式):\n", "\n", "注册 Label 因子(表达式):\n", " - future_return_5_rank: (ts_delay(close, -5) / ts_delay(open, -1)) - 1\n", "\n", - "特征因子数: 49\n", - " - 来自 metadata: 49\n", + "特征因子数: 47\n", + " - 来自 metadata: 47\n", " - 来自表达式: 0\n", "Label: future_return_5_rank\n", - "已注册因子总数: 50\n", + "已注册因子总数: 48\n", "\n", "[3] 准备数据\n", "\n", @@ -640,9 +631,7 @@ "准备数据\n", "================================================================================\n", "\n", - "计算因子: 20200101 - 20251231\n", - "[FinancialLoader] 加载 financial_fina_indicator 失败: Binder Error: Referenced column \"f_ann_date\" not found in FROM clause!\n", - "Candidate bindings: \"ann_date\", \"end_date\", \"ocf_to_debt\", \"arturn_days\", \"nca_to_assets\"\n" + "计算因子: 20200101 - 20251231\n" ] }, { @@ -657,24 +646,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "数据形状: (7044952, 70)\n", - "数据列: ['ts_code', 'trade_date', 'high', 'close', 'amount', 'open', 'turnover_rate', 'low', 'vol', 'total_assets', 'total_mv', 'f_ann_date', 'n_income', 'revenue', 'total_liab', 'total_cur_assets', 'total_cur_liab', 'total_hldr_eqy_exc_min_int', 'n_cashflow_act', 'ebit', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'value_price_divergence', 'active_market_cap', 'ebit_rank', 'future_return_5_rank']\n", + "数据形状: (7044952, 67)\n", + "数据列: ['ts_code', 'trade_date', 'low', 'high', 'open', 'turnover_rate', 'close', 'amount', 'vol', 'total_assets', 'total_mv', 'f_ann_date', 'revenue', 'n_income', 'total_cur_assets', 'total_hldr_eqy_exc_min_int', 'total_liab', 'total_cur_liab', 'n_cashflow_act', 'ma_5', 'ma_20', 'ma_ratio_5_20', 'bias_10', 'high_low_ratio', 'bbi_ratio', 'return_5', 'return_20', 'kaufman_ER_20', 'mom_acceleration_10_20', 'drawdown_from_high_60', 'up_days_ratio_20', 'volatility_5', 'volatility_20', 'volatility_ratio', 'std_return_20', 'sharpe_ratio_20', 'min_ret_20', 'volatility_squeeze_5_60', 'overnight_intraday_diff', 'upper_shadow_ratio', 'capital_retention_20', 'max_ret_20', 'volume_ratio_5_20', 'turnover_rate_mean_5', 'turnover_deviation', 'amihud_illiq_20', 'turnover_cv_20', 'pv_corr_20', 'close_vwap_deviation', 'roe', 'roa', 'profit_margin', 'debt_to_equity', 'current_ratio', 'net_profit_yoy', 'revenue_yoy', 'healthy_expansion_velocity', 'EP', 'BP', 'CP', 'market_cap_rank', 'turnover_rank', 'return_5_rank', 'EP_rank', 'pe_expansion_trend', 'active_market_cap', 'future_return_5_rank']\n", "\n", "前5行预览:\n", - "shape: (5, 70)\n", - "┌───────────┬────────────┬─────────┬─────────┬───┬────────────┬────────────┬───────────┬───────────┐\n", - "│ ts_code ┆ trade_date ┆ high ┆ close ┆ … ┆ value_pric ┆ active_mar ┆ ebit_rank ┆ future_re │\n", - "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ e_divergen ┆ ket_cap ┆ --- ┆ turn_5_ra │\n", - "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ ce ┆ --- ┆ f64 ┆ nk │\n", - "│ ┆ ┆ ┆ ┆ ┆ --- ┆ f64 ┆ ┆ --- │\n", - "│ ┆ ┆ ┆ ┆ ┆ f64 ┆ ┆ ┆ f64 │\n", - "╞═══════════╪════════════╪═════════╪═════════╪═══╪════════════╪════════════╪═══════════╪═══════════╡\n", - "│ 000001.SZ ┆ 20200102 ┆ 1850.42 ┆ 1841.69 ┆ … ┆ null ┆ null ┆ null ┆ -0.008857 │\n", - "│ 000001.SZ ┆ 20200103 ┆ 1889.72 ┆ 1875.53 ┆ … ┆ null ┆ null ┆ null ┆ -0.01881 │\n", - "│ 000001.SZ ┆ 20200106 ┆ 1893.0 ┆ 1863.52 ┆ … ┆ null ┆ null ┆ null ┆ -0.008171 │\n", - "│ 000001.SZ ┆ 20200107 ┆ 1886.45 ┆ 1872.26 ┆ … ┆ null ┆ null ┆ null ┆ -0.014117 │\n", - "│ 000001.SZ ┆ 20200108 ┆ 1861.34 ┆ 1818.76 ┆ … ┆ null ┆ null ┆ null ┆ -0.017252 │\n", - "└───────────┴────────────┴─────────┴─────────┴───┴────────────┴────────────┴───────────┴───────────┘\n", + "shape: (5, 67)\n", + "┌───────────┬────────────┬─────────┬─────────┬───┬──────────┬────────────┬────────────┬────────────┐\n", + "│ ts_code ┆ trade_date ┆ low ┆ high ┆ … ┆ EP_rank ┆ pe_expansi ┆ active_mar ┆ future_ret │\n", + "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on_trend ┆ ket_cap ┆ urn_5_rank │\n", + "│ str ┆ str ┆ f64 ┆ f64 ┆ ┆ f64 ┆ --- ┆ --- ┆ --- │\n", + "│ ┆ ┆ ┆ ┆ ┆ ┆ f64 ┆ f64 ┆ f64 │\n", + "╞═══════════╪════════════╪═════════╪═════════╪═══╪══════════╪════════════╪════════════╪════════════╡\n", + "│ 000001.SZ ┆ 20200102 ┆ 1806.75 ┆ 1850.42 ┆ … ┆ 0.920834 ┆ null ┆ null ┆ -0.008857 │\n", + "│ 000001.SZ ┆ 20200103 ┆ 1847.15 ┆ 1889.72 ┆ … ┆ 0.918182 ┆ null ┆ null ┆ -0.01881 │\n", + "│ 000001.SZ ┆ 20200106 ┆ 1846.05 ┆ 1893.0 ┆ … ┆ 0.919829 ┆ null ┆ null ┆ -0.008171 │\n", + "│ 000001.SZ ┆ 20200107 ┆ 1850.42 ┆ 1886.45 ┆ … ┆ 0.921165 ┆ null ┆ null ┆ -0.014117 │\n", + "│ 000001.SZ ┆ 20200108 ┆ 1815.49 ┆ 1861.34 ┆ … ┆ 0.922481 ┆ null ┆ null ┆ -0.017252 │\n", + "└───────────┴────────────┴─────────┴─────────┴───┴──────────┴────────────┴────────────┴────────────┘\n", "\n", "[4] 转换为排序学习格式\n", "\n", @@ -759,7 +747,7 @@ "[配置] 训练期: 20200101 - 20231231\n", "[配置] 验证期: 20240101 - 20241231\n", "[配置] 测试期: 20250101 - 20251231\n", - "[配置] 特征数: 49\n", + "[配置] 特征数: 47\n", "[配置] 目标变量: future_return_5_rank_rank(20分位数)\n" ] }, @@ -767,7 +755,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_4168\\966642096.py:125: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_6736\\2929956284.py:125: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", "(Deprecated in version 0.20.5)\n", " daily_counts = df_ranked.group_by(date_col).agg(pl.count().alias(\"count\"))\n" ] @@ -783,8 +771,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:48.474674Z", - "start_time": "2026-03-13T14:14:25.243457Z" + "end_time": "2026-03-13T14:39:26.231967Z", + "start_time": "2026-03-13T14:39:02.079217Z" } }, "cell_type": "code", @@ -822,7 +810,7 @@ "================================================================================\n", "\n", "[过滤] 应用 ST 过滤器...\n", - " ST 过滤后数据规模: (6823808, 71)\n", + " ST 过滤后数据规模: (6823808, 68)\n", "\n", "执行每日独立筛选股票池...\n" ] @@ -831,7 +819,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_4168\\2439474879.py:68: DeprecationWarning: `is_in` with a collection of the same datatype is ambiguous and deprecated.\n", + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_6736\\4061767669.py:57: DeprecationWarning: `is_in` with a collection of the same datatype is ambiguous and deprecated.\n", "Please use `implode` to return to previous behavior.\n", "\n", "See https://github.com/pola-rs/polars/issues/22149 for more information.\n", @@ -842,8 +830,8 @@ "name": "stdout", "output_type": "stream", "text": [ - " 筛选前数据规模: (6823808, 71)\n", - " 筛选后数据规模: (1455000, 71)\n", + " 筛选前数据规模: (6823808, 68)\n", + " 筛选后数据规模: (1455000, 68)\n", " 筛选前股票数: 5678\n", " 筛选后股票数: 1934\n", " 删除记录数: 5368808\n" @@ -860,8 +848,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:14:48.541185Z", - "start_time": "2026-03-13T14:14:48.480047Z" + "end_time": "2026-03-13T14:39:26.304464Z", + "start_time": "2026-03-13T14:39:26.241490Z" } }, "cell_type": "code", @@ -900,9 +888,9 @@ "数据划分\n", "================================================================================\n", "\n", - "训练集数据规模: (970000, 71)\n", - "验证集数据规模: (242000, 71)\n", - "测试集数据规模: (243000, 71)\n", + "训练集数据规模: (970000, 68)\n", + "验证集数据规模: (242000, 68)\n", + "测试集数据规模: (243000, 68)\n", "\n", "训练集 group 数量: 970\n", "验证集 group 数量: 242\n", @@ -916,7 +904,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_4168\\966642096.py:149: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", + "C:\\Users\\liaozhaorun\\AppData\\Local\\Temp\\ipykernel_6736\\2929956284.py:149: DeprecationWarning: `pl.count()` is deprecated. Please use `pl.len()` instead.\n", "(Deprecated in version 0.20.5)\n", " pl.count().alias(\"count\")\n" ] @@ -932,8 +920,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.312974Z", - "start_time": "2026-03-13T14:14:48.544339Z" + "end_time": "2026-03-13T14:39:29.591092Z", + "start_time": "2026-03-13T14:39:26.325582Z" } }, "cell_type": "code", @@ -943,7 +931,7 @@ "print(\"=\" * 80)\n", "\n", "print(\"\\n检查训练集...\")\n", - "check_data_quality(train_data, feature_cols, raise_on_error=True)\n", + "check_data_quality(train_data, feature_cols, raise_on_error=False)\n", "\n", "print(\"\\n检查验证集...\")\n", "check_data_quality(val_data, feature_cols, raise_on_error=True)\n", @@ -969,19 +957,19 @@ "数据质量检查报告\n", "================================================================================\n", "\n", - "[严重] 发现 3326 个全空因子:\n", + "[严重] 发现 1386 个全空因子:\n", " (某天的某个因子所有值都是 null,可能是数据缺失或计算错误)\n", - " - 日期 20200910: net_profit_yoy (样本数: 1000)\n", - " - 日期 20200910: revenue_yoy (样本数: 1000)\n", - " - 日期 20200910: healthy_expansion_velocity (样本数: 1000)\n", - " - 日期 20200910: value_price_divergence (样本数: 1000)\n", - " - 日期 20200910: ebit_rank (样本数: 1000)\n", - " - 日期 20230620: value_price_divergence (样本数: 1000)\n", - " - 日期 20230620: ebit_rank (样本数: 1000)\n", - " - 日期 20230802: value_price_divergence (样本数: 1000)\n", - " - 日期 20230802: ebit_rank (样本数: 1000)\n", - " - 日期 20230512: value_price_divergence (样本数: 1000)\n", - " ... 还有 3316 个\n", + " - 日期 20200721: net_profit_yoy (样本数: 1000)\n", + " - 日期 20200721: revenue_yoy (样本数: 1000)\n", + " - 日期 20200721: healthy_expansion_velocity (样本数: 1000)\n", + " - 日期 20200220: drawdown_from_high_60 (样本数: 1000)\n", + " - 日期 20200220: volatility_squeeze_5_60 (样本数: 1000)\n", + " - 日期 20200220: roa (样本数: 1000)\n", + " - 日期 20200220: net_profit_yoy (样本数: 1000)\n", + " - 日期 20200220: revenue_yoy (样本数: 1000)\n", + " - 日期 20200220: healthy_expansion_velocity (样本数: 1000)\n", + " - 日期 20200220: pe_expansion_trend (样本数: 1000)\n", + " ... 还有 1376 个\n", "\n", "--------------------------------------------------------------------------------\n", "建议处理方式:\n", @@ -989,19 +977,12 @@ " 2. 如果是预期内的缺失(如新股无历史数据),考虑调整因子计算窗口\n", " 3. 如果是数据同步问题,重新同步相关数据\n", " 4. 可以使用 filter 排除问题日期或因子\n", - "================================================================================\n" - ] - }, - { - "ename": "ValueError", - "evalue": "数据质量检查失败: 发现 3326 个问题,详见上方报告。如需忽略,请设置 raise_on_error=False", - "output_type": "error", - "traceback": [ - "\u001B[31m---------------------------------------------------------------------------\u001B[39m", - "\u001B[31mValueError\u001B[39m Traceback (most recent call last)", - "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[8]\u001B[39m\u001B[32m, line 6\u001B[39m\n\u001B[32m 3\u001B[39m \u001B[38;5;28mprint\u001B[39m(\u001B[33m\"\u001B[39m\u001B[33m=\u001B[39m\u001B[33m\"\u001B[39m * \u001B[32m80\u001B[39m)\n\u001B[32m 5\u001B[39m \u001B[38;5;28mprint\u001B[39m(\u001B[33m\"\u001B[39m\u001B[38;5;130;01m\\n\u001B[39;00m\u001B[33m检查训练集...\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m----> \u001B[39m\u001B[32m6\u001B[39m \u001B[43mcheck_data_quality\u001B[49m\u001B[43m(\u001B[49m\u001B[43mtrain_data\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mfeature_cols\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mraise_on_error\u001B[49m\u001B[43m=\u001B[49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m)\u001B[49m\n\u001B[32m 8\u001B[39m \u001B[38;5;28mprint\u001B[39m(\u001B[33m\"\u001B[39m\u001B[38;5;130;01m\\n\u001B[39;00m\u001B[33m检查验证集...\u001B[39m\u001B[33m\"\u001B[39m)\n\u001B[32m 9\u001B[39m check_data_quality(val_data, feature_cols, raise_on_error=\u001B[38;5;28;01mTrue\u001B[39;00m)\n", - "\u001B[36mFile \u001B[39m\u001B[32mD:\\PyProject\\ProStock\\src\\training\\utils.py:166\u001B[39m, in \u001B[36mcheck_data_quality\u001B[39m\u001B[34m(df, feature_cols, date_col, check_all_null, check_all_zero, check_all_nan, raise_on_error)\u001B[39m\n\u001B[32m 163\u001B[39m \u001B[38;5;28mprint\u001B[39m(report)\n\u001B[32m 165\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m raise_on_error:\n\u001B[32m--> \u001B[39m\u001B[32m166\u001B[39m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\n\u001B[32m 167\u001B[39m \u001B[33mf\u001B[39m\u001B[33m\"\u001B[39m\u001B[33m数据质量检查失败: 发现 \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mtotal_issues\u001B[38;5;132;01m}\u001B[39;00m\u001B[33m 个问题,\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 168\u001B[39m \u001B[33mf\u001B[39m\u001B[33m\"\u001B[39m\u001B[33m详见上方报告。如需忽略,请设置 raise_on_error=False\u001B[39m\u001B[33m\"\u001B[39m\n\u001B[32m 169\u001B[39m )\n\u001B[32m 171\u001B[39m \u001B[38;5;28;01mreturn\u001B[39;00m issues\n", - "\u001B[31mValueError\u001B[39m: 数据质量检查失败: 发现 3326 个问题,详见上方报告。如需忽略,请设置 raise_on_error=False" + "================================================================================\n", + "\n", + "检查验证集...\n", + "\n", + "检查测试集...\n", + "[成功] 数据质量检查通过,未发现异常\n" ] } ], @@ -1015,8 +996,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.323298800Z", - "start_time": "2026-03-12T15:56:24.492487Z" + "end_time": "2026-03-13T14:39:30.132178Z", + "start_time": "2026-03-13T14:39:29.595727Z" } }, "cell_type": "code", @@ -1064,13 +1045,13 @@ "\n", "测试集处理...\n", "\n", - "处理后训练集形状: (970000, 71)\n", - "处理后验证集形状: (242000, 71)\n", - "处理后测试集形状: (243000, 71)\n" + "处理后训练集形状: (970000, 68)\n", + "处理后验证集形状: (242000, 68)\n", + "处理后测试集形状: (243000, 68)\n" ] } ], - "execution_count": 8 + "execution_count": 9 }, { "metadata": {}, @@ -1080,8 +1061,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.323298800Z", - "start_time": "2026-03-12T15:56:25.031866Z" + "end_time": "2026-03-13T14:39:31.913185Z", + "start_time": "2026-03-13T14:39:30.136586Z" } }, "cell_type": "code", @@ -1126,7 +1107,7 @@ "\n", "训练样本数: 970000\n", "验证样本数: 242000\n", - "特征数: 49\n", + "特征数: 47\n", "目标变量: future_return_5_rank_rank\n", "\n", "目标变量统计(训练集):\n", @@ -1150,12 +1131,12 @@ "开始训练...\n", "Training until validation scores don't improve for 50 rounds\n", "Early stopping, best iteration is:\n", - "[2]\ttrain's ndcg@10: 0.5742\tval's ndcg@10: 0.570382\n", + "[55]\ttrain's ndcg@10: 0.625716\tval's ndcg@10: 0.559889\n", "训练完成!\n" ] } ], - "execution_count": 9 + "execution_count": 10 }, { "metadata": {}, @@ -1165,8 +1146,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.323298800Z", - "start_time": "2026-03-12T15:56:26.444220Z" + "end_time": "2026-03-13T14:39:32.028008Z", + "start_time": "2026-03-13T14:39:31.917113Z" } }, "cell_type": "code", @@ -1236,11 +1217,11 @@ "\n", "[早停信息]\n", " 配置的最大轮数: 2000\n", - " 实际训练轮数: 52\n", - " 早停状态: 已触发(最佳迭代: 2)\n", + " 实际训练轮数: 105\n", + " 早停状态: 已触发(最佳迭代: 55)\n", "\n", "最终 NDCG 指标:\n", - " ndcg@10: 训练集=0.6456, 验证集=0.5425\n", + " ndcg@10: 训练集=0.6351, 验证集=0.5518\n", "\n", "[绘图] 使用 LightGBM 原生接口绘制训练曲线...\n" ] @@ -1250,7 +1231,7 @@ "text/plain": [ "
" ], - "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPdCAYAAADxjUr8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA175JREFUeJzs3QeYXHW5P/B3e0nvvZEQIIQQmtRLURAFEbCBoBQvFooNC+IVFAv+vSjiVa8Iir2AXFSUJh0h9BJ6eu99k022z/85ZwsJSSAJuzuzu5+Pz3lOmTOzvzmzJ5Jv3nl/eZlMJhMAAAAAAOSE/GwPAAAAAACA1whtAQAAAAByiNAWAAAAACCHCG0BAAAAAHKI0BYAAAAAIIcIbQEAAAAAcojQFgAAAAAghwhtAQAAAAByiNAWAAAAACCHCG0BAMhp55xzTuTl5aXL+PHjo6GhoeWxa6+9tuWxX//61+mx0aNHtxwrKCiIbt26pcdOPPHE+MMf/hD19fXb/DmrVq2Kyy+/PCZPnhw9evSI7t27x1577RUXXHBBvPTSS1ucW1VVFT/96U/jqKOOin79+kVxcXEMGzYsDjnkkPj6178es2fPbpX3XlNTE1/84hfjsMMOi9LS0pb3deedd27z/Mceeyze+c53Rs+ePdP3ffjhh8ftt9/eKmMBAKD9FLbjzwIAgLdkxowZcdNNN8Xpp5++Q+cnAe/GjRtj3rx56ZIEmDfccEP89a9/TYPNZs8++2wa6i5ZsmSL57/66qvpkoSy11xzTXps8eLFccIJJ8TUqVO3ODc5niyPP/54FBUVxde+9rWtxpOEucnr3HHHHbFw4cJ0DJMmTYqzzjorzjzzzMjP37KmIhn7D37wgx16rw899FAcd9xxadDbbMqUKfGe97wnDas//OEP79DrAACQfSptAQDoUK688srIZDI7dG5yXmVlZdx7772x3377pcfuu+++OO+881rO2bBhQ7z3ve9tCWw/+tGPxqxZs6K6ujqmTZsWl112WVq12vx673vf+1oC26OPPjoNaZPK23Xr1sWDDz4YF110Ucv5m/uf//mftHL3xz/+ccycOTN9zvLly+Oee+5JQ9vktZJq380l4e+FF16Yhq6f+tSn3vC9Jo8ngW2vXr3iySefTH/GyJEj0zF/+tOfjk2bNu3QNQMAIPtU2gIA0GEk7Q5eeOGFuPXWW+Pkk0/eoeeUl5fH29/+9rjrrrti3LhxUVFREX/5y1/S19lnn33iF7/4RVr1mkjaG/z2t79teW7SjuGb3/xmS0uFf/zjH2lImxgxYkRauVtWVpbul5SUxJFHHpkur/e///u/8dnPfjb69++ftlv4wAc+ELvttlsasiYBaxLk/vOf/0yrYpPgN6nsTSTh709+8pN0e/r06dt9j88880y88sor6XZShXzggQe2BLlf/epX0zA4aalw6qmn7uCVBgAgm1TaAgDQYXzoQx9K19/5znd2+rkDBgxIWxA0S1oUJDbvD5sEq9sLizd/TiIJX5sD2zeyYMGCuPjii2PixInx3HPPpVW9Z5xxRgwePDh+9atfxWc+85lYv359fO9730t70iYVuTsrCW2b7bnnntvc3vwcAABym9AWAIAOIwk4kz6wSXXqv/71r51+flI522zu3LnpOul1u62Qc1s2P3ePPfZo2U4qWpsnCUuWJJBt9qMf/Sg9lvTRHTRoULz//e+PF198MW3L8OUvfzltkZBItpOK4KTyd2etWLGiZXvzXr2bbzf/HAAAcp/QFgCADqN3795pheuuVtsmE5M1S4LUzdc7a0efl1TyJn1wk9YMSYuGJPh917veFWvWrEknK0vWzZJK4KSPbtLCoTVs3vt3V98nAADtT2gLAECHkrQaSPrUPvTQQ/Hwww/v1HM37ws7evTodJ1M1tUsCUzfyKhRo7b5Wtdee20akG7+eLM5c+bE2972tnR7xowZLZW5SQD9+c9/fotzmyt0kyrcnW390CyZEK1Z0nZhW+cAAJDbhLYAAHQoSfj48Y9/PN3+85//vFMtBP74xz+27L/73e9O10nVa7Pt9ZNtnohs83OToLa2tnaHfnZzT9zNK1+3tf/ss89GUVFR9OvXL3bG/vvvv83g+dVXX93mOQAA5DahLQAAHc6XvvSlKC4ubglT38imTZvi/vvvTwPX5srT0047LZ0YLHHeeefF8OHD0+0pU6bEueeem1bHJoFsUk172WWXpUvipJNOigMPPDDdTs459dRT44UXXkjPTSYcq6qq2urnJxW9Tz/99BY9dX/+85/H2rVrW0LipG3DbbfdFldddVW84x3viJKSkpbnr1y5Ml02btzYcixpn5Aca66qTQLZvfbaqyXIfuqpp2LmzJlpsJxIQuDNA2cAAHJbXub1/7wPAAA55Jxzzonf/OY36fYrr7zSMlnYJz/5ybjuuutazvvVr36VnpuEpJtPGPZ6SSh6yy23bDFJV1LhesIJJ8TSpUu3+ZzPfvazcc0116TbSTh7/PHHp2PZnmTCsebXSlogJONMql6HDBmS9rZtHl9SgZuMo7mvba9evdLgeMKECTvUi/aoo46KBx54IN1+8MEH453vfGfU1NRscU7y/D/84Q/x4Q9/eLuvAwBAblFpCwBAh3TJJZdEYWHhG56TBJZlZWVpr9kklE3aIySTgW0e2Cb222+/tGI2mRhs0qRJ0a1bt7Rv7h577JH2n02qcZuNGDEinnzyybQq9uCDD05fKwlfk2rWww47LL761a/Gfffd13L+Zz7zmbQS95RTTknD2b/85S9pKJv8jO9+97tpkJv0sv3IRz6SVshuHtjujCTATYLb4447Lnr06JGOPxnPP//5T4EtAEAHo9IWAADa2NVXXx1f+MIX0oA2CZuTNgtJS4akzcH8+fPTatkk/N08HAYAoOsS2gIAQDv43ve+F//1X/+1zT68SX/e66+/Ps466yyfBQAAQlsAAGgvL7/8ctob95577onFixdHnz590j60l156aUuvXgAAUGkLAAAAAJBDTEQGAAAAAJBDhLYAAAAAADmkMNsDyEUNDQ1pj7EePXpEXl5etocDAAAAAHQCmUwm1q9fH0OHDo38/O3X0wpttyEJbEeMGNGWnw8AAAAA0EUtWLAghg8fvt3HhbbbkFTYJubMmRN9+/Ztu08HyLra2tr417/+lc7cXVRUlO3hAG3I/Q5dh/sdug73O3QdtZ3k7+8VFRVpsWhz/rg9QtttaG6JkFy8nj17ts0nBOTMH/rl5eXpvd6R/9AH3pz7HboO9zt0He536DpqO9nf39+sJauJyAAAAAAAcojQFgAAAAAghwhtAQAAAAByiJ62AAAAAECLhoaGqKmpybmetoWFhVFVVRX19fWRq5J+uwUFBW/5dYS2AAAAAEAqCWvnzJmTBre5JJPJxODBg2PBggVvOolXtvXu3Tsd61sZp9AWAAAAAEiD0SVLlqSVoiNGjIj8/NzprNrQ0BAbNmyI7t2759S4Xn/9Nm7cGMuXL0/3hwwZssuvJbQFAAAAAKKuri4NHYcOHRrl5eU52bKhtLQ0Z0PbRFlZWbpOgtuBAwfucquE3H2HAAAAAEC7ae4VW1xc7Kq/Bc2Bd9KHd1cJbQEAAACAFrneM7YrXD+hLQAAAABADhHaAgAAAADkEKEtAAAAAEBEjB49Oq655pqsX4vCbA8AAAAAAGBXHX300TF58uRWCVuffPLJ6NatW9Y/DKEtAAAAANBpZTKZqK+vj8LCN49CBwwYELlAewQAAAAAYJth58aauqwsmUxmhz6Rc845Jx588MH40Y9+FHl5eeny61//Ol3fcccdccABB0RJSUk8/PDDMWvWrDj55JNj0KBB0b179zjooIPinnvuecP2CMnr/OIXv4hTTz01ysvLY/fdd49bb721zX9bVNoCAAAAAFvZVFsfEy6/KytX5uVvHh/lxW8eXSZh7fTp02PixInxzW9+Mz320ksvpeuvfOUr8f3vfz9222236NOnTyxYsCBOOOGE+M53vpMGub/97W/jpJNOimnTpsXIkSO3+zOuuOKK+O///u+46qqr4sc//nGceeaZMW/evOjbt2+0FZW2AAAAAECH1KtXryguLk6rYAcPHpwuBQUF6WNJiHvcccfF2LFj04B13333jU9+8pNpwJtUzH7rW99KH3uzytmkmvfDH/5wjBs3Lq688srYsGFDPPHEE236vlTaAgAAAABbKSsqSCtes/Wz36oDDzxwi/0kbP3GN74Rt912WyxZsiTq6upi06ZNMX/+/Dd8nUmTJrVsJ5OU9ezZM5YvXx5tSWgLAAAAAGwl6ee6Iy0KclW3bt222P/iF78Yd999d9oyIamaLSsriw984ANRU1Pzhq9TVFS01XVpaGiIttRxrzoAAAAA0OUVFxdHfX39m16HRx55JG11kEwq1lx5O3fu3Jy8fnraAgAAAAAd1ujRo+Pxxx9PA9iVK1dutwo26WN7yy23xHPPPRdTp06NM844o80rZneV0BYAAAAA6LC++MUvppOPTZgwIQYMGLDdHrVXX3119OnTJw477LA46aST4vjjj4/9998/cpH2CAAAAABAhzV+/Ph49NFHtziWtEHYVkXufffdt8WxCy+8cIv917dLyGQyW73O2rVro62ptAUAAAAAyCFCWwAAAACAHCK0BQAAAADIIUJbAAAAAIAcIrQFAAAAAMghQlsAAAAAgBwitAUAAAAAyCFCWwAAAACAHCK0BQAAAADIIUJbAAAAAKDLGj16dFxzzTWRS4S2AAAAAAA5RGgLAAAAAJBDhLYAAAAAwNYy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gFIjtAUAAEDYu+qqqzRy5EhveciQIbr55psr7b5feOEF1axZ86jLv/jiC1133XWVth4AAACIHPGhXgEAAADAjw4fPqzExMQy/3y9evXKdX0AAAAQPai0BQAAQERV3M6ZM0dPPfWUYmJivLF27VrvuiVLlujMM89UtWrV1KBBA1155ZXatm1b7s9ahe748eO9Kt26detqxIgR3uWPP/64TjrpJKWkpKhZs2b65S9/qfT0dO+62bNna+zYsdq9e3fu/d1zzz2FtkdYv369zj//fO/+U1NTdemll2rz5s2519vPdevWTf/617+8n61Ro4Yuu+wy7d27N/c2r7/+urcuVatWVZ06dTRs2DDt27evEh5ZAAAAVCZCWwAAAEQMC2v79++vcePGadOmTd6woHXXrl067bTT1L17d3355ZeaMmWKF5hacBrsn//8p1dd++mnn2rSpEneZbGxsfrTn/6kpUuXetfPnDlTt99+u3fdgAEDvGDWQtjA/d12221HrVdWVpYX2O7YscMLladNm6bvv/9eo0aNyne7NWvW6O2339b777/vDbvtQw895F1nv/vyyy/X1VdfrWXLlnmB8YUXXqjs7OwKfEQBAAAQCrRHAAAAQMSw6lQLXZOTk9WwYcPcy//85z97ge2DDz6Ye9nkyZO9QHflypVq166dd1nbtm31yCOP5Pudwf1xrQL2gQce0PXXX69nn33Wuy+7T6uwDb6/gmbMmKHFixfrhx9+8O7TvPjii+rcubPX+7Z379654a71yK1evbp33qqB7Wf/8Ic/eKHtkSNHvKC2RYsW3vVWdQsAAIDIQ6UtAAAAIt4333yjWbNmea0JAqNDhw651a0BPXv2POpnp0+frqFDh6pJkyZemGpB6vbt27V///4S379VxlpYGwhsTadOnbwJzOy64FA4ENiaRo0aacuWLd5y165dvfWwoPaSSy7RX//6V+3cubMMjwYAAAD8jtAWAAAAEc960J577rn6+uuv841Vq1Zp0KBBubezvrXBrB/uOeecoy5duuiNN97QwoUL9cwzz+ROVFbeEhIS8p23Cl6rvjVxcXFeW4UPP/zQC3yffvpptW/f3qveBQAAQGQhtAUAAEBEsZYFmZmZ+S7r0aOH15PWKlnbtGmTbxQMaoNZSGuh6R//+Ef169fPa6OwcePGY95fQR07dtSPP/7ojYDvvvvO67VrAWxJWYg7cOBA3Xvvvfrqq6+8+37rrbdK/PMAAAAID4S2AAAAiCgWzH7++edeley2bdu80PWGG27wJgGzibysh6y1RJg6darGjh1bbOBqoW5GRoZX1WoTh/3rX//KnaAs+P6sktd6z9r9FdY2YdiwYV5bgyuuuEKLFi3SggULNHr0aA0ePFi9evUq0d9lf5P15LWJ1NavX68333xTW7du9QJhAAAARBZCWwAAAESU2267zWslYBWs9erV8wLOxo0b69NPP/UC2tNPP90LUG2CMespGxtb9Edi6yP7+OOP6+GHH9aJJ56ol19+WRMnTsx3mwEDBngTk40aNcq7v4ITmQUqZN955x3VqlXLa8dgIW7r1q31yiuvlPjvSk1N1dy5c3XWWWd5Fb+///3vvQrgM888s5SPEAAAAPwuJjs7OzvUKwEAAAAAAAAAcKi0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAPnH/wcMEdDPgbJLwQAAAABJRU5ErkJggg==" + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAPdCAYAAADxjUr8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA5BdJREFUeJzs3Qd81PX9x/F39l5kkwTC3htBcCAuFPderaPVumu1zrZqtY62Wkurtjhqrf61rjpQUEQBUYYgyN6EMDJIQkhC9rj7P77fDBkBE0hyl7vX8/H49ve73/3ud9+748S+/dzn6+N0Op0CAAAAAAAAALgFX1dPAAAAAAAAAADwA0JbAAAAAAAAAHAjhLYAAAAAAAAA4EYIbQEAAAAAAADAjRDaAgAAAAAAAIAbIbQFAAAAAAAAADdCaAsAAAAAAAAAboTQFgAAAAAAAADcCKEtAAAAAAAAALgRQlsAAAC4tWuvvVY+Pj529O3bVw6Ho+m+qVOnNt336quv2mPp6elNx/z8/BQWFmaPnXXWWXrjjTdUV1fX7PPs3r1bDz30kIYPH66IiAiFh4drwIABuuWWW7RmzZr9zq2srNTzzz+vCRMmKDY2VoGBgUpJSdGxxx6rhx9+WBkZGW3y2qurq3X33Xdr/PjxCg4Obnpdn332WbPnL1q0SKeffroiIyPt6z7uuOM0Y8aMNpkLAAAAOo5/Bz4XAAAAcFQ2bdqkd955R5dffnmLzjcBb3l5ubZt22aHCTBfeeUVffDBBzbYbPT999/bUDcnJ2e/x69fv94OE8pOmTLFHsvOztbkyZO1YsWK/c41x8349ttvFRAQoN/97ncHzceEueY6n376qXbu3GnnMHToUF199dW66qqr5Ou7f02Fmftf/vKXFr3WefPm6bTTTrNBb6MFCxbo7LPPtmH1FVdc0aLrAAAAwPWotAUAAECn8sQTT8jpdLboXHNeWVmZvvzyS40YMcIemz17tq6//vqmc0pLS3Xuuec2BbY//elPtWXLFlVVVWnDhg168MEHbdVq4/UuvPDCpsD2pJNOsiGtqbwtLi7WV199pdtuu63p/H39/e9/t5W7zz77rDZv3mwfk5eXpy+++MKGtuZaptp3Xyb8vfXWW23oetNNNx32tZr7TWAbFRWlJUuW2Ofo1q2bnfPtt9+uioqKFr1nAAAAcD0qbQEAANBpmHYHq1at0rRp03Teeee16DGhoaE6+eSTNXPmTPXu3VslJSV699137XWGDBmil19+2Va9Gqa9wWuvvdb0WNOO4dFHH21qqfDxxx/bkNZIS0uzlbshISH2dlBQkE488UQ7DvSPf/xDd9xxh+Li4my7hYsvvlg9e/a0IasJWE2Q+8knn9iqWBP8mspew4S/zz33nN3fuHHjIV/jsmXLtG7dOrtvqpBHjx7dFOT+5je/sWGwaalwwQUXtPCdBgAAgCtRaQsAAIBO49JLL7Xbxx9/vNWPjY+Pty0IGpkWBca+/WFNsHqosHjfxxgmfG0MbA9nx44duuuuuzR48GAtX77cVvVeeeWVSkpK0r///W/98pe/1N69e/WnP/3J9qQ1FbmtZULbRv379292f99zAAAA4N4IbQEAANBpmIDT9IE11amff/55qx9vKmcbZWZm2q3pddtcyNmcfc/t169f076paG1cJMwME8g2+tvf/maPmT66iYmJuuiii7R69WrbluHee++1LRIMs28qgk3lb2vl5+c37e/bq3ff/cbnAQAAgPsjtAUAAECnER0dbStcj7Ta1ixM1sgEqftuW6uljzOVvKYPrmnNYFo0mOD3jDPO0J49e+xiZWbbyFQCmz66poVDW9i39++Rvk4AAAB0PEJbAAAAdCqm1YDpUztv3jx98803rXrsvn1h09PT7dYs1tXIBKaH071792avNXXqVBuQ7nt/o61bt2rMmDF2f9OmTU2VuSaAvvPOO/c7t7FC11Thtrb1QyOzIFoj03ahuXMAAADg3ghtAQAA0KmY8PGGG26w+2+99VarWgi8+eabTbfPPPNMuzVVr40O1U+2cSGyfc81QW1NTU2LnruxJ+6+la/N3f7+++8VEBCg2NhYtcbIkSObDZ7Xr1/f7DkAAABwb4S2AAAA6HTuueceBQYGNoWph1NRUaE5c+bYwLWx8vSyyy6zC4MZ119/vVJTU+3+ggULdN1119nqWBPImmraBx980A7jnHPO0ejRo+2+OeeCCy7QqlWr7LlmwbHKysqDnt9U9C5dunS/nrovvPCCioqKmkJi07Zh+vTpeuqpp3TKKacoKCio6fEFBQV2lJeXNx0z7RPMscaqWhPIDhgwoCnI/u6777R582YbLBsmBN43cAYAAIB783Ee+J/3AQAAADdy7bXX6j//+Y/dX7duXdNiYTfeeKNe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AGgVQlsAAHBYeXsrNXVuht74dpuqGsJa0w/WLDQ2vlcsfWEBAAAAoI21z3LOrfD8888rPT1dwcHBGjt2rBYvXnzY84uKinTrrbcqOTlZQUFB6tu3r62kafTkk0/qmGOOUUREhBISEnT++edrw4YNHfBKAADwLPl7q/TYJ2t14p/n6JX5W21gO6p7jP7v52P17k3jdFzvOAJbAAAAAPC0Stu3335bd911l6ZOnWoD2ylTpmjSpEk2ZDWB64Gqq6t12mmn2fvee+89paSkaNu2bYqOjm4656uvvrKhrglua2tr9Zvf/Eann3661q5dq7CwsA5+hQAAdD4FpVV64asten3RNlXW1FfWjugWrTtP7asT+hDUAgAAAIBHh7bPPPOMbrjhBl133XX2tglvp0+frldeeUX333//Qeeb44WFhVqwYEFTfzpTpbuvzz77bL/br776qg15ly5dqhNPPLHZeVRVVdnRqKSkxG5ramrsAOB5Gr/bfMeBH1TV1Omf87bqlfmZqmgIa4emRuqOk3vrhN71bRDMfxDtDPiOA56P7zng2fiOA57PW7/nNS18vT5Op9MpFzBVs6GhobZi1rQwaHTNNdfYFggfffTRQY+ZPHmyunTpYh9n7o+Pj9eVV16p++67T35+fs0+z+bNm9WnTx+tWrVKgwcPbvac3//+93rkkUcOOv7mm2/a5wIAwNNtKvbR2xm+yq/0sbfTwpw6M82hgdFO+dQfAgAAAAAcpfLycptnFhcXKzIy0v0qbQsKClRXV6fExMT9jpvb69evb/YxGRkZmj17tq666irbx9YEsrfccotNqB9++OGDznc4HPrVr36l44477pCBrfHAAw/YNg37VtqmpaVp4sSJio2NParXCcA9mX9uzJo1y7ZcYWV5eLM95dX608yN+t/abHs7MSJIv53cT2cMSuzU/Wr5jgOej+854Nn4jgOez1u/5yUNv/B36/YIrWVCWNPq4MUXX7SVtaNGjVJWVpaeeuqpZkNb09t29erV+uabbw57XbOgmRkHMn9gvOkPDeCN+J7DW5kf2kxbka1HP16r3WXVtpr2J2O7654z+iky2HP+7uM7Dng+vueAZ+M7Dng+b/ueB7TwtbostI2Li7PB665du/Y7bm4nJSU1+5jk5GT7wvZthTBgwADl5ubadguBgYFNx2+77TZ98sknmjdvnlJTU9vx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N/EYAAAAAAAAAORFIe1pCwAAAAAAAABIj9AWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAAAAAAfITQFgAAAAAAAAB8hNAWAAAAAAAAAHyE0BYAAAAA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nM86DuRtVnFnExVZe4RevXppxowZeuutt7xhIiIivF2pn3jiCdWpU8f7MfjQQw95u1Z379491IsP4BQuueQSr4etTQRs7RHmzp2rF154Qddee613Oes4kPfs3btXy5cvTzf5mBVU2G9uW9dP9Xfb9qi58MILNXjwYK8dkk0ebsVYVpFv18tXAjjGK6+8EqhWrVqgQIECgTZt2gSmT5/OqwTkQfZf3PHGu+++m3KdAwcOBG6++eZAyZIlA4ULFw5cfvnlgQ0bNoR0uQFkXYcOHQK33357ymnWcSDv++qrrwKnn356IDY2NlC/fv3AW2+9le7yxMTEwEMPPRQoX768d53zzjsvsGTJkpAtL4CM2717t/d3235/FyxYMFCrVq3Agw8+GDh06FDKdVjHgbxl0qRJx/0dPnDgwAyv09u2bQv06dMnULRo0UBcXFxg0KBBgT179gTymwj7J9TBMQAAAAAAAADAoactAAAAAAAAAPgIoS0AAAAAAAAA+AihLQAAAAAAAAD4CKEtAAAAAAAAAPgIoS0AAAAAAAAA+AihLQAAAAAAAAD4CKEtAAAAAAAAAPgIoS0AAAAAAAAA+AihLQAAAJADatSooSFDhvDaAgAAINMIbQEAAJDnXXPNNerevbt3vGPHjrrjjjty7bHfe+89lShR4pjzZ86cqRtuuCHXlgMAAADhIzrUCwAAAAD40eHDh1WgQIEs375s2bJBXR4AAADkH1TaAgAAIKwqbqdMmaKXXnpJERER3vjrr7+8y/744w9ddNFFKlq0qMqXL6/+/ftr69atKbe1Ct1bb73Vq9ItU6aMunTp4p3/wgsvqHHjxipSpIiqVq2qm2++WXv37vUumzx5sgYNGqRdu3alPN6//vWv47ZHWL16tS677DLv8ePi4tSrVy9t2rQp5XK7XbNmzTRs2DDvtsWLF9dVV12lPXv2pFzns88+85alUKFCKl26tDp37qx9+/blwisLAACA3ERoCwAAgLBhYe0ZZ5yhwYMHa8OGDd6woHXnzp0699xz1bx5c82aNUvjx4/3AlMLTtN6//33veran3/+WW+88YZ3XmRkpF5++WUtWLDAu/yHH37Qvffe613Wvn17L5i1EDb58e6+++5jlisxMdELbLdv3+6FyhMmTNDKlSvVu3fvdNdbsWKFRo8era+//tobdt2nn37au8zuu0+fPrr22mu1aNEiLzDu0aOHAoFADr6iAAAACAXaIwAAACBsWHWqha6FCxdWhQoVUs5/9dVXvcD2ySefTDlv6NChXqC7dOlS1a1b1zuvTp06evbZZ9PdZ9r+uFYB+8QTT+imm27Sf//7X++x7DGtwjbt4x1t4sSJmj9/vv7880/vMc0HH3ygRo0aeb1vW7dunRLuWo/cYsWKeaetGthu++9//9sLbRMSErygtnr16t7lVnULAACA8EOlLQAAAMLeb7/9pkmTJnmtCZJH/fr1U6pbk7Vs2fKY237//fc677zzVLlyZS9MtSB127Zt2r9/f4Yf3ypjLaxNDmxNw4YNvQnM7LK0oXByYGsqVqyozZs3e8ebNm3qLYcFtVdeeaXefvtt7dixIwuvBgAAAPyO0BYAAABhz3rQXnLJJZo3b166sWzZMp1zzjkp17O+tWlZP9xu3bqpSZMm+vzzzzV79my99tprKROVBVtMTEy601bBa9W3JioqymurMG7cOC/wfeWVV1SvXj2vehcAAADhhdAWAAAAYcVaFhw5ciTdeS1atPB60lola+3atdONo4PatCyktdD0P//5j9q1a+e1UVi/fv0pH+9oDRo00Jo1a7yRbOHChV6vXQtgM8pC3DPPPFOPPvqo5s6d6z32qFGjMnx7AAAA5A2EtgAAAAgrFsz++uuvXpXs1q1bvdD1lltu8SYBs4m8rIestUT49ttvNWjQoJMGrhbqxsfHe1WtNnHYsGHDUiYoS/t4VslrvWft8Y7XNqFz585eW4O+fftqzpw5mjFjhgYMGKAOHTqoVatWGXpe9pysJ69NpLZ69Wp98cUX2rJlixcIAwAAILwQ2gIAACCs3H333V4rAatgLVu2rBdwVqpUST///LMX0F5wwQVegGoTjFlP2cjIE38ltj6yL7zwgp555hmdfvrpGj58uJ566ql012nfvr03MVnv3r29xzt6IrPkCtkxY8aoZMmSXjsGC3Fr1aqlkSNHZvh5xcXFaerUqeratatX8fvPf/7TqwC+6KKLMvkKAQAAwO8iAoFAINQLAQAAAAAAAABwqLQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAAHyG0BQAAAAAAAAAfIbQFAAAAAAAAAB8htAUAAAAAAAAA+cf/AyBll7qpXVUJAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data", @@ -1265,13 +1246,13 @@ "\n", "[指标分析]\n", " 各NDCG指标在验证集上的最佳值:\n", - " ndcg@10: 0.5704 (迭代 2)\n", + " ndcg@10: 0.5599 (迭代 55)\n", "\n", "[重要提醒] 验证集仅用于早停/调参,测试集完全独立于训练过程!\n" ] } ], - "execution_count": 10 + "execution_count": 11 }, { "metadata": {}, @@ -1281,8 +1262,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.323298800Z", - "start_time": "2026-03-12T15:56:26.601415Z" + "end_time": "2026-03-13T14:39:32.393179Z", + "start_time": "2026-03-13T14:39:32.041674Z" } }, "cell_type": "code", @@ -1341,43 +1322,43 @@ "\n", "NDCG 评估结果:\n", "----------------------------------------\n", - " ndcg@1: 0.4869\n", - " ndcg@5: 0.5123\n", - " ndcg@10: 0.5211\n", - " ndcg@20: 0.5237\n", + " ndcg@1: 0.5399\n", + " ndcg@5: 0.5424\n", + " ndcg@10: 0.5346\n", + " ndcg@20: 0.5299\n", "\n", "特征重要性(Top 20):\n", "----------------------------------------\n", - " 1. turnover_rank 280.23\n", - " 2. mom_acceleration_10_20 75.44\n", - " 3. volatility_20 69.78\n", - " 4. profit_margin 64.57\n", - " 5. revenue_yoy 62.87\n", - " 6. BP 60.64\n", - " 7. std_return_20 48.58\n", - " 8. EP 45.02\n", - " 9. return_20 43.80\n", - " 10. drawdown_from_high_60 43.42\n", - " 11. pv_corr_20 43.31\n", - " 12. kaufman_ER_20 39.42\n", - " 13. active_market_cap 37.19\n", - " 14. turnover_rate_mean_5 32.11\n", - " 15. min_ret_20 29.80\n", - " 16. max_ret_20 28.82\n", - " 17. amihud_illiq_20 28.09\n", - " 18. up_days_ratio_20 27.88\n", - " 19. ma_20 26.77\n", - " 20. EP_rank 24.64\n" + " 1. close_vwap_deviation 8189.04\n", + " 2. revenue_yoy 4009.98\n", + " 3. profit_margin 3742.07\n", + " 4. sharpe_ratio_20 1536.27\n", + " 5. active_market_cap 1361.63\n", + " 6. max_ret_20 1216.47\n", + " 7. pe_expansion_trend 1215.69\n", + " 8. market_cap_rank 1063.42\n", + " 9. debt_to_equity 886.34\n", + " 10. drawdown_from_high_60 878.19\n", + " 11. volatility_20 677.31\n", + " 12. return_20 675.57\n", + " 13. amihud_illiq_20 515.66\n", + " 14. min_ret_20 486.54\n", + " 15. turnover_rank 484.78\n", + " 16. ma_20 428.48\n", + " 17. std_return_20 413.62\n", + " 18. BP 307.34\n", + " 19. turnover_cv_20 299.52\n", + " 20. EP_rank 297.78\n" ] } ], - "execution_count": 11 + "execution_count": 12 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-03-13T14:15:07.323298800Z", - "start_time": "2026-03-12T15:56:26.866785Z" + "end_time": "2026-03-13T14:39:32.644581Z", + "start_time": "2026-03-13T14:39:32.401777Z" } }, "cell_type": "code", @@ -1445,24 +1426,24 @@ "│ --- ┆ --- ┆ --- │\n", "│ str ┆ f64 ┆ str │\n", "╞════════════╪══════════╪═══════════╡\n", - "│ 2025-01-02 ┆ 0.011742 ┆ 605189.SH │\n", - "│ 2025-01-02 ┆ 0.010834 ┆ 002076.SZ │\n", - "│ 2025-01-02 ┆ 0.010567 ┆ 603041.SH │\n", - "│ 2025-01-02 ┆ 0.010191 ┆ 600493.SH │\n", - "│ 2025-01-02 ┆ 0.008633 ┆ 000679.SZ │\n", + "│ 2025-01-02 ┆ 0.186959 ┆ 600082.SH │\n", + "│ 2025-01-02 ┆ 0.088174 ┆ 600844.SH │\n", + "│ 2025-01-02 ┆ 0.079581 ┆ 600683.SH │\n", + "│ 2025-01-02 ┆ 0.07805 ┆ 600193.SH │\n", + "│ 2025-01-02 ┆ 0.074266 ┆ 002343.SZ │\n", "│ … ┆ … ┆ … │\n", - "│ 2025-01-06 ┆ 0.016587 ┆ 002343.SZ │\n", - "│ 2025-01-06 ┆ 0.011217 ┆ 002188.SZ │\n", - "│ 2025-01-06 ┆ 0.010834 ┆ 002076.SZ │\n", - "│ 2025-01-06 ┆ 0.007108 ┆ 000677.SZ │\n", - "│ 2025-01-06 ┆ 0.006257 ┆ 603117.SH │\n", + "│ 2025-01-06 ┆ 0.185272 ┆ 600082.SH │\n", + "│ 2025-01-06 ┆ 0.137456 ┆ 000668.SZ │\n", + "│ 2025-01-06 ┆ 0.125342 ┆ 002848.SZ │\n", + "│ 2025-01-06 ┆ 0.114527 ┆ 002343.SZ │\n", + "│ 2025-01-06 ┆ 0.101892 ┆ 600193.SH │\n", "└────────────┴──────────┴───────────┘\n", "\n", "训练流程完成!\n" ] } ], - "execution_count": 12 + "execution_count": 13 }, { "metadata": {}, diff --git a/src/experiment/learn_to_rank.py b/src/experiment/learn_to_rank.py index b8c75de..15a6b2a 100644 --- a/src/experiment/learn_to_rank.py +++ b/src/experiment/learn_to_rank.py @@ -1,17 +1,17 @@ -# %% md +#%% md # # Learn-to-Rank 排序学习训练流程 -# +# # # 本 Notebook 实现基于 LightGBM LambdaRank 的排序学习训练,用于股票排序任务。 -# +# # # ## 核心特点 -# +# # # 1. **Label 转换**: 将 `future_return_5` 按每日进行 20 分位数划分(qcut) # 2. **排序学习**: 使用 LambdaRank 目标函数,学习每日股票排序 # 3. **NDCG 评估**: 使用 NDCG@1/5/10/20 评估排序质量 # 4. **策略回测**: 基于排序分数构建 Top-k 选股策略 -# %% md +#%% md # ## 1. 导入依赖 -# %% +#%% import os from datetime import datetime from typing import List, Tuple, Optional @@ -37,9 +37,9 @@ from src.training.components.models import LightGBMLambdaRankModel from src.training.config import TrainingConfig -# %% md +#%% md # ## 2. 辅助函数 -# %% +#%% def register_factors( engine: FactorEngine, selected_factors: List[str], @@ -240,11 +240,11 @@ def evaluate_ndcg_at_k( return results -# %% md +#%% md # ## 3. 配置参数 -# +# # # ### 3.1 因子定义 -# %% +#%% # 特征因子定义字典(复用 regression.ipynb 的因子定义) LABEL_NAME = "future_return_5_rank" @@ -302,23 +302,23 @@ SELECTED_FACTORS = [ "return_5_rank", "EP_rank", "pe_expansion_trend", - "value_price_divergence", + # "value_price_divergence", "active_market_cap", - "ebit_rank", + # "ebit_rank", ] # 因子定义字典(完整因子库) FACTOR_DEFINITIONS = { - # "turnover_rate_volatility": "ts_std(turnover_rate, 20)" + # "turnover_rate_volatility": "ts_std(log(turnover_rate), 20)" } # Label 因子定义(不参与训练,用于计算目标) LABEL_FACTOR = { LABEL_NAME: "(ts_delay(close, -5) / ts_delay(open, -1)) - 1", } -# %% md +#%% md # ### 3.2 训练参数配置 -# %% +#%% # 日期范围配置(正确的 train/val/test 三分法) TRAIN_START = "20200101" TRAIN_END = "20231231" @@ -387,9 +387,9 @@ PERSIST_MODEL = False # Top N 配置:每日推荐股票数量 TOP_N = 5 # 可调整为 10, 20 等 -# %% md +#%% md # ## 4. 训练流程 -# %% +#%% print("\n" + "=" * 80) print("LightGBM LambdaRank 排序学习训练") print("=" * 80) @@ -429,7 +429,7 @@ print(f"[配置] 特征数: {len(feature_cols)}") print(f"[配置] 目标变量: {target_col}({N_QUANTILES}分位数)") # 6. 创建排序学习模型 -model: LightGBMLambdaRankModel = LightGBMLambdaRankModel(params=MODEL_PARAMS) +model = LightGBMLambdaRankModel(params=MODEL_PARAMS) # 7. 创建数据处理器(使用函数返回的完整特征列表) processors = [ @@ -469,9 +469,9 @@ trainer = Trainer( feature_cols=feature_cols, persist_model=PERSIST_MODEL, ) -# %% md +#%% md # ### 4.1 股票池筛选 -# %% +#%% print("\n" + "=" * 80) print("股票池筛选") print("=" * 80) @@ -493,9 +493,9 @@ if pool_manager: else: filtered_data = data print(" 未配置股票池管理器,跳过筛选") -# %% md +#%% md # ### 4.2 数据划分 -# %% +#%% print("\n" + "=" * 80) print("数据划分") print("=" * 80) @@ -519,15 +519,15 @@ if splitter: print(f"测试集日均样本数: {np.mean(test_group):.1f}") else: raise ValueError("必须配置数据划分器") -# %% md +#%% md # ### 4.3 数据质量检查 -# %% +#%% print("\n" + "=" * 80) print("数据质量检查(必须在预处理之前)") print("=" * 80) print("\n检查训练集...") -check_data_quality(train_data, feature_cols, raise_on_error=True) +check_data_quality(train_data, feature_cols, raise_on_error=False) print("\n检查验证集...") check_data_quality(val_data, feature_cols, raise_on_error=True) @@ -537,9 +537,9 @@ check_data_quality(test_data, feature_cols, raise_on_error=True) print("[成功] 数据质量检查通过,未发现异常") -# %% md +#%% md # ### 4.4 数据预处理 -# %% +#%% print("\n" + "=" * 80) print("数据预处理") print("=" * 80) @@ -563,9 +563,9 @@ if processors: print(f"\n处理后训练集形状: {train_data.shape}") print(f"处理后验证集形状: {val_data.shape}") print(f"处理后测试集形状: {test_data.shape}") -# %% md +#%% md # ### 4.4 训练 LambdaRank 模型 -# %% +#%% print("\n" + "=" * 80) print("训练 LambdaRank 模型") print("=" * 80) @@ -593,9 +593,9 @@ model.fit( eval_set=(X_val, y_val, val_group), ) print("训练完成!") -# %% md +#%% md # ### 4.5 训练指标曲线 -# %% +#%% print("\n" + "=" * 80) print("训练指标曲线") print("=" * 80) @@ -645,9 +645,9 @@ else: best_val = max(val_metric_list) print(f" {metric}: {best_val:.4f} (迭代 {best_iter_metric + 1})") print(f"\n[重要提醒] 验证集仅用于早停/调参,测试集完全独立于训练过程!") -# %% md +#%% md # ### 4.6 模型评估 -# %% +#%% print("\n" + "=" * 80) print("模型评估") print("=" * 80) @@ -685,7 +685,7 @@ if importance is not None: top_features = importance.sort_values(ascending=False).head(20) for i, (feature, score) in enumerate(top_features.items(), 1): print(f" {i:2d}. {feature:30s} {score:10.2f}") -# %% +#%% # 确保输出目录存在 os.makedirs(OUTPUT_DIR, exist_ok=True) @@ -731,36 +731,37 @@ print(f"\n 预览(前15行):") print(topn_to_save.head(15)) print("\n训练流程完成!") -# %% md +#%% md # ## 5. 总结 -# +# # # 本 Notebook 实现了完整的 Learn-to-Rank 训练流程: -# +# # # ### 核心步骤 -# +# # # 1. **数据准备**: 计算 49 个特征因子,将 `future_return_5` 转换为 20 分位数标签 # 2. **模型训练**: 使用 LightGBM LambdaRank 学习每日股票排序 # 3. **模型评估**: 使用 NDCG@1/5/10/20 评估排序质量 # 4. **策略分析**: 基于排序分数构建 Top-k 选股策略 -# +# # # ### 关键参数 -# +# # # - **Objective**: lambdarank # - **Metric**: ndcg # - **Learning Rate**: 0.05 # - **Num Leaves**: 31 # - **N Quantiles**: 20 -# +# # # ### 输出结果 -# +# # # - rank_output.csv: 每日Top-N推荐股票(格式:date, score, ts_code) # - 特征重要性排名 # - Top-k 策略统计和图表 # - NDCG训练指标曲线 -# +# # # ### 后续优化方向 -# +# # # 1. **特征工程**: 尝试更多因子组合 # 2. **超参数调优**: 使用网格搜索优化 LambdaRank 参数 # 3. **模型集成**: 结合多个排序模型的预测 # 4. **更复杂的分组**: 考虑按行业分组排序 +# \ No newline at end of file diff --git a/src/experiment/regression.ipynb b/src/experiment/regression.ipynb index 79a78cd..64393cf 100644 --- a/src/experiment/regression.ipynb +++ b/src/experiment/regression.ipynb @@ -30,6 +30,7 @@ " Trainer,\n", " Winsorizer,\n", " NullFiller,\n", + " check_data_quality,\n", ")\n", "from src.training.config import TrainingConfig\n", "\n" @@ -46,13 +47,13 @@ "outputs": [], "execution_count": null, "source": [ - "def create_factors_with_metadata(\n", + "def register_factors(\n", " engine: FactorEngine,\n", " selected_factors: List[str],\n", " factor_definitions: dict,\n", " label_factor: dict,\n", ") -> List[str]:\n", - " \"\"\"注册因子(SELECTED_FACTORS 从 metadata 查询,FACTOR_DEFINITIONS 用表达式注册)\"\"\"\n", + " \"\"\"注册因子(selected_factors 从 metadata 查询,factor_definitions 用 DSL 表达式注册)\"\"\"\n", " print(\"=\" * 80)\n", " print(\"注册因子\")\n", " print(\"=\" * 80)\n", @@ -327,9 +328,6 @@ " \"random_state\": 42,\n", "}\n", "\n", - "# 数据处理器配置(新 API:需要传入 feature_cols)\n", - "# 注意:processor 现在需要显式指定要处理的特征列\n", - "\n", "\n", "# 股票池筛选函数\n", "# 使用新的 StockPoolManager API:传入自定义筛选函数和所需列/因子\n", @@ -409,7 +407,7 @@ "\n", "# 2. 使用 metadata 定义因子\n", "print(\"\\n[2] 定义因子(从 metadata 注册)\")\n", - "feature_cols = create_factors_with_metadata(\n", + "feature_cols = register_factors(\n", " engine, SELECTED_FACTORS, FACTOR_DEFINITIONS, LABEL_FACTOR\n", ")\n", "target_col = LABEL_NAME\n", @@ -434,7 +432,7 @@ "# 5. 创建模型\n", "model = LightGBMModel(params=MODEL_PARAMS)\n", "\n", - "# 6. 创建数据处理器(新 API:需要传入 feature_cols)\n", + "# 6. 创建数据处理器(使用函数返回的完整特征列表)\n", "processors = [\n", " NullFiller(feature_cols=feature_cols, strategy=\"mean\"),\n", " Winsorizer(feature_cols=feature_cols, lower=0.01, upper=0.99),\n", @@ -560,8 +558,32 @@ "outputs": [], "execution_count": null, "source": [ - "# 步骤 3: 训练集数据处理\n", - "print(\"\\n[步骤 3/6] 训练集数据处理\")\n", + "# 步骤 3: 数据质量检查(必须在预处理之前)\n", + "print(\"\\n[步骤 3/7] 数据质量检查\")\n", + "print(\"-\" * 60)\n", + "print(\" [说明] 此检查在 fillna 等处理之前执行,用于发现数据问题\")\n", + "\n", + "print(\"\\n 检查训练集...\")\n", + "check_data_quality(train_data, feature_cols, raise_on_error=True)\n", + "\n", + "if \"val_data\" in locals() and val_data is not None:\n", + " print(\"\\n 检查验证集...\")\n", + " check_data_quality(val_data, feature_cols, raise_on_error=True)\n", + "\n", + "print(\"\\n 检查测试集...\")\n", + "check_data_quality(test_data, feature_cols, raise_on_error=True)\n", + "\n", + "print(\" [成功] 数据质量检查通过,未发现异常\")\n" + ] + }, + { + "metadata": {}, + "cell_type": "code", + "outputs": [], + "execution_count": null, + "source": [ + "# 步骤 4: 训练集数据处理\n", + "print(\"\\n[步骤 4/7] 训练集数据处理\")\n", "print(\"-\" * 60)\n", "fitted_processors = []\n", "if processors:\n", @@ -595,7 +617,7 @@ "execution_count": null, "source": [ "# 步骤 4: 训练模型\n", - "print(\"\\n[步骤 4/6] 训练模型\")\n", + "print(\"\\n[步骤 5/7] 训练模型\")\n", "print(\"-\" * 60)\n", "print(f\" 模型类型: LightGBM\")\n", "print(f\" 训练样本数: {len(train_data)}\")\n", @@ -624,7 +646,7 @@ "execution_count": null, "source": [ "# 步骤 5: 测试集数据处理\n", - "print(\"\\n[步骤 5/6] 测试集数据处理\")\n", + "print(\"\\n[步骤 6/7] 测试集数据处理\")\n", "print(\"-\" * 60)\n", "if processors and test_data is not train_data:\n", " for i, processor in enumerate(fitted_processors, 1):\n", @@ -647,7 +669,7 @@ "execution_count": null, "source": [ "# 步骤 6: 生成预测\n", - "print(\"\\n[步骤 6/6] 生成预测\")\n", + "print(\"\\n[步骤 7/7] 生成预测\")\n", "print(\"-\" * 60)\n", "X_test = test_data.select(feature_cols)\n", "print(f\" 测试样本数: {len(X_test)}\")\n", diff --git a/src/factors/engine/schema_cache.py b/src/factors/engine/schema_cache.py index f239d29..618a862 100644 --- a/src/factors/engine/schema_cache.py +++ b/src/factors/engine/schema_cache.py @@ -110,6 +110,9 @@ class SchemaCache: # 字段到表的映射(一个字段可能在多个表中存在) field_to_tables: Dict[str, List[str]] = {} for table, fields in table_fields.items(): + # 跳过不支持 PIT 的财务表(如 fina_indicator) + if table.lower() in self._NON_PIT_FINANCIAL_TABLES: + continue for field in fields: if field not in field_to_tables: field_to_tables[field] = [] @@ -124,17 +127,30 @@ class SchemaCache: sorted_tables = sorted(tables, key=lambda t: priority_order.get(t, 999)) self._field_to_table_map[field] = sorted_tables[0] + # 不支持 PIT(Point-In-Time)策略的财务表列表 + # 这些表缺少 f_ann_date 列,无法使用 asof_backward 模式 + _NON_PIT_FINANCIAL_TABLES = {"financial_fina_indicator"} + def is_financial_table(self, table_name: str) -> bool: """判断是否为财务数据表。 + 注意:只有支持 PIT 策略(有 f_ann_date 列)的财务表才会返回 True。 + fina_indicator 表由于只有 ann_date 而没有 f_ann_date,被排除在外。 + Args: table_name: 表名 Returns: - 是否为财务数据表 + 是否为支持 PIT 的财务数据表 """ financial_prefixes = ("financial_", "income", "balance", "cashflow") - return table_name.lower().startswith(financial_prefixes) + is_financial = table_name.lower().startswith(financial_prefixes) + + # 排除不支持 PIT 的表 + if is_financial and table_name.lower() in self._NON_PIT_FINANCIAL_TABLES: + return False + + return is_financial def get_table_fields(self, table_name: str) -> List[str]: """获取指定表的字段列表。