【特征工程】機器學習的特征構造和篩選

調研論文中,看到datafun的一篇agent文章“智能不夠,知識來湊”——知識驅動的金融決策智能體,里面提到了自動因子挖掘,感覺可以用來做機器學習的“特征工程”。

第一部分介紹如何“構造特征”,第二部分介紹如何“分析特征重要度”。第二部分,有一些經濟學中的內容,可以忽略。

1.構造特征

1.1自動因子挖掘領域概述

自動因子挖掘,也常被稱為“AI因子挖掘”或“算法化Alpha發現”,是指利用機器學習、特別是遺傳規劃(Genetic Programming)和深度學習等算法,來自動地、系統性地在海量數據中搜索、發現能夠預測金融資產未來收益的有效信號(即“因子”或“Alpha”)的過程。

這與傳統的因子研究方法形成了鮮明對比:

  • 傳統方法:由量化研究員基于金融理論、市場經驗或直覺,提出一個經濟學假設(例如:“低市盈率的公司長期來看會跑贏大盤”),然后手動地將這個假設編寫成數學公式(如 rank(1 / PE_ratio)),最后進行嚴格的回測驗證。這個過程高度依賴研究員的智慧和經驗。
  • 自動方法:由算法程序充當研究員的角色。程序在一個巨大的“搜索空間”中,通過類似“進化”或“學習”的方式,自動地組合基礎數據和數學算子,生成成千上萬個候選因子表達式,并通過適應度函數(如夏普比率、信息系數IC)進行篩選,最終找到新穎且有效的因子。

核心目標:在經典因子(如價值、動量、規模)日益擁擠、Alpha收益衰減的背景下,尋找新的、低相關性的、能帶來超額收益的Alpha來源。

1.2核心技術與方法

自動因子挖掘主要依賴以下幾種核心技術:

  1. 遺傳規劃 (Genetic Programming, GP)
    這是最經典、最主流的自動因子挖掘技術。它模擬生物進化論中的“優勝劣汰,適者生存”原則來“進化”出優秀的因子表達式。

    • 基本元素
      • 終端集 (Terminal Set):因子的“原材料”,即各種基礎數據,如 開盤價(open)收盤價(close)成交量(volume)市盈率(pe_ratio) 等。
      • 函數集 (Function Set):用于組合原材料的“工具”,即各種數學算子,如 +, -, *, /, log(), rank() (橫截面排序), ts_corr() (時間序列相關性), delay() (過去N期的數據) 等。
    • 進化過程
      1. 初始化:隨機生成一大批(比如1000個)由基本元素組成的初始因子表達式“種群”。
      2. 適應度評估:對每一個因子進行歷史數據回測,計算其“適應度分數”(例如,信息系數IC的均值、夏普比率等)。分數越高,代表因子越優秀。
      3. 選擇:根據適應度分數,以“優勝劣汰”的原則選擇優秀的因子進入“下一代”。
      4. 交叉與變異:模仿生物進化,對被選中的因子進行:
        • 交叉 (Crossover):將兩個“父代”因子的表達式樹的一部分進行交換,生成新的“子代”因子。
        • 變異 (Mutation):隨機改變一個因子表達式樹的某個節點(比如把 + 換成 -,或把 close 換成 vwap)。
      5. 循環:重復步驟2-4,經過成百上千代的“進化”后,最終存活下來的就是表現最好的因子。
  2. 深度學習 (Deep Learning)
    這是一種較新的方法,尤其以AlphaNet為代表。它不直接生成人類可讀的因子表達式。

    • 工作原理:構建一個深度神經網絡(如LSTM、CNN或Transformer),將大量的市場數據(價格、成交量、技術指標等)作為輸入,將未來的收益作為輸出標簽進行訓練。
    • “因子”是什么:模型學習到的復雜非線性關系本身就是“因子”。這個因子是隱藏在網絡權重中的一個“黑箱”,解釋性較差,但可能捕捉到比GP更復雜的模式。

1.3自動因子挖掘的示例

為了更具體地理解這個過程,我們來看一個完整的示例。

1. 準備“原材料”(終端集)
數據類別示例數據(Terminal)說明
價格/量價open, close, high, low, vwap, volume, returns每日的開、高、低、收、成交均價、成交量、回報率
技術指標sma(close, 10), rsi(14)10日移動平均線,14日相對強弱指數
基本面數據pe_ratio, pb_ratio, market_cap市盈率、市凈率、總市值
另類數據sentiment_score, satellite_image_data新聞情緒分、衛星圖像數據(如停車場車輛數)
2. 準備“工具箱”(函數集)
算子類別示例算子(Function)說明
算術運算+, -, *, /基本四則運算
數學函數log(), abs(), sign()對數、絕對值、符號函數
橫截面運算rank(x), scale(x)rank(x)返回x在所有股票中的百分位排名;scale(x)將x標準化
時間序列運算delay(x, n), delta(x, n), ts_corr(x, y, n)delay(x, n)取n天前的x值;delta(x, n)計算x的n日變化;ts_corr計算x和y在過去n日的相關性
邏輯運算if(cond, a, b)如果條件cond成立,返回a,否則返回b
3. 算法“烹飪”出的因子表達式

遺傳規劃算法可能會生成以下幾種不同復雜度的因子:

  • 簡單且可解釋的因子 (Simple & Interpretable)

    • 表達式: rank(close / delay(close, 10))
    • 解讀: 這實際上就是一個經典的10日動量(Momentum)因子。它計算了過去10天的收盤價變化率,并在所有股票中進行排名。排名高的股票代表近期漲勢更強。
  • 中等復雜度的因子 (Moderately Complex)

    • 表達式: ts_corr(rank(volume), rank(high - low), 5)
    • 解讀: 這個因子試圖捕捉一種量價關系的模式。它計算的是“過去5天里,一只股票的成交量排名與其當日振幅(最高價-最低價)排名之間的相關性”。一個正值可能意味著“放量上漲/下跌”的股票動能更強。這種組合是人類研究員不太容易直接想到的。
  • 高度復雜、類似機器生成的因子 (Complex & Machine-like)

    • 表達式: -1 * rank(delta(log(vwap), 2)) * (ts_corr(rank(close), rank(sma(volume, 60)), 10))
    • 解讀: 這個表達式非常復雜,可解釋性很差,但它可能是有效的。
      • 第一部分 delta(log(vwap), 2) 衡量了加權平均價在過去2天的對數變化(近似于加速度)。
      • 第二部分 ts_corr(...) 衡量了收盤價排名和60日平均成交量排名在過去10天的相關性。
      • 整個因子將這兩個看似無關的部分相乘,并取負排名。它可能發現了一個非常細微的市場異象(anomaly),即“股價加速下跌,且近期價量相關性高的股票,未來可能會反彈”。

1.4知名平臺與工具

  • WorldQuant (Brave new anpha platform):全球最知名的量化對沖基金之一,其成功很大程度上就建立在自動因子挖掘之上。它通過其在線平臺 WebSim 和內部的 Global Factor Weaver (GFW) 系統,讓全球數萬名“研究顧問”提交他們發現的Alpha因子(很多就是利用類似GP的思路),形成了一個巨大的因子工廠。
  • Qraft Technologies:一家韓國的金融科技公司,專注于使用AI和深度學習技術來自動發現因子,并基于此發行主動型ETF基金。
  • 開源工具
    • Qlib (by Microsoft):一個面向AI的量化投資綜合平臺,提供了數據處理、模型訓練和回測的全套框架,可以用于因子挖掘。
    • AlphaNet: 一個專門用于深度學習因子挖掘的開源框架。
    • gplearn: Python中的一個通用遺傳規劃庫,可以被量化研究員定制用于金融因子的挖掘。

2.篩選特征

篩選流程:一個多層次的“漏斗”

一個“好”的因子,通常需要具備有效性、穩健性、獨立性、可交易性可解釋性。篩選過程就是圍繞這些特性展開的。


2.1 第一層:初步有效性檢驗 (Is it Predictive at All?)

這是漏斗最寬的一層,目的是快速剔除大量明顯無效的因子。核心指標是信息系數(Information Coefficient, IC)

  • 什么是IC?
    IC衡量的是因子值與資產未來收益率之間的相關性。簡單來說,就是**“這個因子到底有沒有預測能力?”**
    • 計算方式:通常計算當期因子值與下一期股票收益率的Spearman秩相關系數(Rank IC),因為它對異常值不敏感。
    • IC值 (IC Mean):IC時間序列的均值。一個好的因子,其IC均值應顯著大于0(正向預測)或小于0(反向預測)。通常,|IC Mean| > 0.02 是一個最基礎的門檻。
    • ICIR (Information Ratio, 信息比率)ICIR = IC均值 / IC標準差。這是對IC進行風險調整后的指標,衡量了因子預測能力的穩定性和強度。它是篩選中最核心的指標之一。通常,ICIR > 0.5 被認為是一個比較好的水平。
    • IC標準差 (IC Std. Dev.):衡量IC值的波動性。標準差越小,說明因子的預測能力越穩定。

在這一層,我們會剔除所有|IC Mean|過低或ICIR不達標的因子。


2.2 第二層:統計顯著性與穩健性分析 (Is the Predictiveness Real and Robust?)

通過了第一層的因子只是“看起來有效”,但這種有效性可能是由隨機運氣造成的。這一層要檢驗其統計上的意義和在不同情況下的表現。

  1. IC的t檢驗 (t-test of IC Series)

    • 目的:檢驗IC均值是否在統計上顯著不為零。
    • 方法:對IC的時間序列數據進行t檢驗,計算其t值和p值。通常要求**|t-value| > 2** 或 p-value < 0.05
  2. 分層回測 (Quantile Backtesting)

    • 目的:這是最直觀的檢驗方法,觀察因子是否具有良好的單調性。
    • 方法
      1. 在每個調倉周期,根據因子值對所有股票進行排序。
      2. 將股票等分為5組或10組(Quantiles)。
      3. 分別計算每組股票在下一期的平均收益率。
      4. 觀察從第一組(因子值最高)到最后一組(因子值最低)的收益率是否呈現單調遞減(或遞增)的趨勢。
    • 好的表現:收益率曲線平滑單調,如下圖所示。這說明因子值越高,未來收益確實越好(或越差)。
  3. 多空組合凈值曲線 (Long-Short Portfolio Curve)

    • 方法:構建一個“做多”因子值最高的組合,同時“做空”因子值最低的組合。
    • 好的表現:這個多空組合的累計凈值曲線應該長期、穩定地向上增長,回撤要小。

在這一層,我們會剔除t值不顯著、分層回測沒有單調性、或者多空組合表現不佳的因子。


2.3 第三層:獨立性分析 (Is it a New Source of Alpha?)

一個因子即使有效且穩健,但如果它和我們已有的因子高度相關,那么它的附加價值就很小。我們希望找到的是新穎的、低相關性的Alpha來源。

  1. 與常見風格因子(Style Factors)的相關性

    • 目的:確保新因子不是某個已知風格(如規模、價值、動量)的簡單代理。
    • 方法:計算新因子與Fama-French三因子、五因子模型中的**市值因子(SMB)、賬面市值比因子(HML)、動量因子(MOM)**等的相關性。
  2. 與行業因子(Industry Factors)的相關性

    • 目的:確保因子的有效性不是來源于它在某個特定行業的暴露。
    • 方法:將因子在行業虛擬變量上做回歸,看其殘差(即剔除行業影響后)是否依然有效。
  3. 與自有Alpha因子庫的相關性

    • 目的:這是最重要的一步。確保新因子與你策略中已經使用的其他Alpha因子低相關。
    • 方法:計算新因子與因子庫中所有因子的相關系數矩陣。通常要求**|相關系數| < 0.3**。

在這一層,我們會剔除與已知因子高度相關的因子,以保證因子庫的多樣性。


2.4 第四層:可交易性分析 (Can it be Profitably Traded?)

理論上有效的因子,在現實交易中可能因為成本過高而無法盈利。

  1. 因子換手率 (Factor Turnover)
    • 目的:衡量因子的穩定性,以及它所導致的交易成本。
    • 方法:計算在相鄰兩個調倉周期之間,多空組合中股票成分的變化比例。
    • 考量:換手率越高,意味著交易越頻繁,交易成本(傭金、沖擊成本、滑點)就越高。一個ICIR為0.7但換手率極高的因子,實際表現可能不如一個ICIR為0.5但換手率很低的因子。

在這一層,我們會對因子進行“成本調整后”的評估,傾向于選擇換手率更低的因子。


2.5 第五層:綜合評估與經濟學意義解釋 (Final Verdict)

這是漏斗的最后一層,帶有一定的主觀判斷。

  1. 因子評分卡 (Factor Scorecard)

    • 將通過以上所有考驗的因子,按照ICIR、t值、換手率、最大相關性等多個維度進行打分,形成一個綜合排名。
  2. 尋找經濟學/行為金融學解釋 (Economic Intuition)

    • 對于最終勝出的頂級因子,嘗試去理解它為什么會有效。它捕捉了市場的何種無效性?是某種投資者行為偏差(如處置效應、注意力有限)?還是某種風險溢價?
    • 一個擁有合理解釋的因子,我們更有信心它能在未來持續有效,而不是一個由數據挖掘產生的、可能很快失效的統計假象。

總結

篩選“好的”因子是一個嚴謹的科學流程,而非單一維度的比較。一個最終被納入實盤策略的因子,應該是在預測能力、穩定性、獨立性和交易可行性等多個維度上都表現優異的“全能選手”。

篩選層次核心問題關鍵指標/方法
第一層有預測能力嗎?IC均值, ICIR
第二層預測能力是真實的、穩健的嗎?IC的t檢驗, 分層回測, 多空組合凈值
第三層這是新的Alpha來源嗎?與風格/行業/已有Alpha因子的相關性分析
第四層交易成本高嗎?能盈利嗎?因子換手率 (Turnover)
第五層綜合來看表現如何?能理解嗎?綜合評分卡, 經濟學解釋, 壓力測試

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83674.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第21節 Node.js 多進程

Node.js本身是以單線程的模式運行的&#xff0c;但它使用的是事件驅動來處理并發&#xff0c;這樣有助于我們在多核 cpu 的系統上創建多個子進程&#xff0c;從而提高性能。 每個子進程總是帶有三個流對象&#xff1a;child.stdin, child.stdout和child.stderr。他們可能會共享…

【走進Golang】測試SDK環境搭建成功,配置path環境變量

[1]進入控制命令臺&#xff1a;win R -->cmd [2]證明SDK環境成功 1.此電腦 2.高級系統設置 3.環境變量 4.點擊環境變量&#xff0c;進入找到 path&#xff0c;點擊編輯 5.進入編輯,找到對應目錄&#xff0c;配置成功 添加完成后&#xff0c;點擊確定&#xff0c;確定&#…

LlamaIndex 工作流 并發執行

除了循環和分支之外&#xff0c;工作流還可以并發地執行步驟。當你有多個可以相互獨立運行的步驟&#xff0c;并且這些步驟中包含需要等待的耗時操作時&#xff0c;這種并發執行的方式就非常有用&#xff0c;因為它允許其他步驟并行運行。 觸發多個事件 到目前為止&#xff0…

精粹匯總:大廠編程規范(持續更新)

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 有很多很多不足的地方&#xff0c;歡迎評論交流&#xff0c;感謝您的閱讀和評論&#x1f604;。 目錄 1 引言2 并發控制 (Concurrency Control)3 事務控…

curl 檢查重定向的命令總結

查看是否發生了重定向&#xff1a; curl -I http://yourdomain.com跟蹤整個重定向鏈&#xff1a; curl -IL http://yourdomain.com禁止跳轉&#xff0c;檢查是否返回 301/302&#xff1a; curl -I --max-redirs 0 http://yourdomain.com如果你只想看跳沒跳 HTTPS&#xff0c…

STM32 Bootloader:使用文件頭加載并啟動應用程序

文章目錄 STM32 Bootloader&#xff1a;使用文件頭加載并啟動應用程序的完整解析一、系統整體流程二、鏡像頭結構 image\_header\_t三、Bootloader 主函數流程1. 初始化 UART2. 調用啟動函數3. 拷貝 APP 并跳轉啟動 四、跳轉執行 APP 的實現五、總結與擴展思路 明白了&#xff…

無外接物理顯示器的Ubuntu系統的遠程桌面連接(升級版)

文章目錄 操作步驟實踐截圖配置 Xorg 的虛擬顯示界面(升級版) 操作步驟 “遠程連接”,在設置里直接打開就可以.進行配置就行. 1.配置 GRUB 以支持無顯示器啟動 sudo nano /etc/default/grub (里面有一行改為: GRUB_CMDLINE_LINUX_DEFAULT"quiet splash videovesa:off vi…

ACCU-100安科瑞協調控制器:精準調控光伏逆變器

產品概述 ACCU-100微電網協調控制器是一款應用于微電網、分布式發電、儲能等領域的智能協調控制器。它能接入光伏系統、風力發電、儲能系統以及充電樁等設備&#xff0c;通過對微電網系統進行數據采集與分析&#xff0c;實時監控各類設備的運行狀態和健康狀況。在此基礎上&…

長春光博會 | 麒麟信安:構建工業數字化安全基座,賦能智能制造轉型升級

6月10日-13日&#xff0c;2025長春國際光電博覽會Light國際會議&#xff08;簡稱長春光博會&#xff09;在長春東北亞國際博覽中心盛大舉行&#xff0c;吉林省委書記黃強出席并宣布開幕&#xff0c;省委副書記、省長胡玉亭致辭。本屆大會聚焦光電信息領域的前沿技術和最新產品&…

書寫時垂直筆畫比水平筆畫表現更好的心理機制分析

你有寫字的時候總是垂直方向筆畫好寫&#xff0c;水平方向的筆畫不好寫的情況存在嗎&#xff1f; 書寫時垂直筆畫比水平筆畫表現更好的心理機制分析 從人類認知和行為模式的角度來理解這種現象。以下是深度心理分析&#xff1a; 核心心理動因 重力知覺內化&#xff1a; 垂直…

SpringAI使用總結

SpringAI使用總結 基本使用ChatModel和ChatClient簡單對話流式輸出預設角色prompt&#xff08;提示詞&#xff09;function call&#xff08;工具調用&#xff09;參考 基本使用 ChatModel和ChatClient SpringAi支持非常多的模型&#xff0c;為了統一處理&#xff0c;SpringA…

歷史交易數據漲跌分級

歷史交易數據漲跌分級 # encoding:utf-8 import sys,traceback from loguru import loggersys.path.append("..") from QhSpiderTool import QhDorpFiled from QhCsvMode import *def QhZhangDieFenJi(QhDfData,QhFangFa"A"):"""歷史交易數…

Kafka入門4.0.0版本(基于Java、SpringBoot操作)

Kafka入門4.0.0版本&#xff08;基于Java、SpringBoot操作&#xff09; 一、kafka概述 Kafka最初是由LinkedIn公司開發的&#xff0c;是一個高可靠、高吞吐量、低延遲的分布式發布訂閱消息系統&#xff0c;它使用Scala語言編寫&#xff0c;并于2010年被貢獻給了Apache基金會&…

react react-router-dom中獲取自定義參數v6.4版本之后

路由配置, AutnToken 組件作為權限、登錄管理 import { createBrowserRouter, Navigate } from react-router-dom; import Layout from /layout/index; import Login from /pages/login; import Page404 from /pages/404;import AutnToken from /components/authToken; import…

AI中的Prompt

1. System 作用&#xff1a;設定 AI 的“角色設定”和“行為準則”。 內容&#xff1a;通常是描述 LLM 的身份、語氣、行為范圍、約束規則。 類似&#xff1a;在大語言模型中是最優先被考慮的提示。 示例&#xff1a; 你是一個專業的商品評價分析助手&#xff0c;請根據用戶…

從人工到智能:IACheck如何重構檢測報告審核工作流?

從人工到智能&#xff1a;IACheck如何重構檢測報告審核工作流&#xff1f; 在當今AI技術迅猛發展的時代&#xff0c;各行各業正經歷從“人工驅動”到“智能驅動”的根本性變革。檢測認證&#xff08;TIC&#xff09;行業作為關乎質量與安全的重要支柱&#xff0c;也不例外。在…

React事件處理:如何給按鈕綁定onClick點擊事件?

系列回顧&#xff1a; 在前幾篇文章中&#xff0c;我們已經學會了如何使用 State 管理組件的內部數據&#xff0c;以及如何通過 Props 實現父子組件之間的通信。我們的組件現在已經有了“數據”和“外觀”。但是&#xff0c;它還像一個只能看的“模型”&#xff0c;無法與用戶進…

【機器學習|學習筆記】粒子群優化(Particle Swarm Optimization, PSO)詳解,附代碼。

【機器學習|學習筆記】粒子群優化&#xff08;Particle Swarm Optimization, PSO&#xff09;詳解&#xff0c;附代碼。 【機器學習|學習筆記】粒子群優化&#xff08;Particle Swarm Optimization, PSO&#xff09;詳解&#xff0c;附代碼。 文章目錄 【機器學習|學習筆記】粒…

深度剖析:AI 社媒矩陣營銷工具,如何高效獲客?

在社交媒體營銷領域&#xff0c;競爭日益激烈&#xff0c;傳統的社媒矩陣運營方式面臨諸多挑戰。而 AI 社媒矩陣營銷工具的出現&#xff0c;正以前所未有的方式重構社媒矩陣的底層架構&#xff0c;為營銷人員帶來了全新的機遇與變革。接下來&#xff0c;我們將從技術破局、實戰…

Spring XML 常用命名空間配置

Spring XML 常用命名空間配置 下面是一個綜合性的Spring XML配置樣例&#xff0c;展示了各種常用命名空間的使用方式&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans&quo…