【資料科學】XGBoost 演算法預測報酬(上)

以演算法 XGBoost 對資料庫的投資因子學習並進行預測

TEJ 台灣經濟新報
TEJ-API 金融資料分析
6 min readOct 5, 2021

--

Photo Creds: Unsplash

本文重點概要

  • 文章難度:★★★☆☆
  • 虛擬環境設定
  • XGBoost 簡介與安裝

前言

近來演算法興起,發展出各式各樣的數學模型用以分析並解決問題,經典的演算法為「迴歸模型」,但隨著科技的進步,發展出能自我改進學習的算法 — 機器學習(Machine Learning),發展至今成為最火熱的類累神經網路模型 (Deep Learning)。

本文章介紹樹狀模型 XGBoost,文章將會分兩部分,上半段為環境設定與模組安裝,以及資料庫的介紹。下半段為資料的預處理,模型的訓練、預測和視覺化。

XGBoost簡介

先來介紹當今火紅的的演算法 XGBoost,所謂的 Boosting 就是一種將許多弱學習器集合起來,變成一個更強大的學習器,對於最終預測結果都有更高的準確度。

XGBoost ( Extreme Gradient Boosting ),是一種擬合殘差的梯度下降算法 Gradient Boosted Tree (GBDT),每一步學習是基於之前的錯誤中進步,並會保留原本的模型,並加入新的函數,作為修正上次學習的錯誤,此為集合多個弱學習器。應用方面主要解決監督式學習,可以處理分類也可以解決迴歸問題。

編輯環境及模組需求

本文使用 Mac OS 並以 Jupyter Notebook 作為編輯器

虛擬環境建立

由於 XGBoost 使用到眾多的模組,如果版本不一致會產生報不完的錯誤。我們可以建立新的環境來安裝這些模組,安裝的方式有很多種方法,本安裝為較為簡單易懂的方式,以求發生最少錯誤。

Step 1. 安裝 Anaconda

Anaconda 可以說是初學者的懶人包,解決目前各系統的不一致導致安裝困難的狀況,擁眾多愛好者及企業用戶外,整理了超過1000種的 Packages可安裝,適用於 Windows、Linux 和 MacOS 不同作業系統環境,也具虛擬環境管理器,對於在安裝、執行機器學習環境上變得簡單快速

Step 2. 開啟終端機(terminal),輸入以下指令,建立新環境並安裝 python

Windows 系統的話可以點 Anaconda Prompt

windows

輸入建立環境指令

會跳出問你是否安裝,輸入 y 再按 enter 就成功了!我們新環境名稱範例為 test,當然也可以輸入你喜歡的名稱

我們可以輸入以上指令,查看目前我們有哪些的虛擬環境,確認一下有建立成功

step 3. 啟用環境

此時終端機最前面括號 (base) 就會變成我們剛剛建立新環境的名稱 (test),代表啟動成功

如果之後安裝失敗,要重新安裝,我們只要簡單的輸入一串指令就可以移除新創的環境,再重新安裝一次,完全不用擔心影響其他的環境

安裝 XGBoost

step 1. 啟用環境

step 2. 輸入指令安裝

一樣會詢問是否要安裝這些模組,輸入 y 再按 enter 就開始安裝了,跑完就成功啦!是不是非常簡單!

安裝 XGBoost 視覺化套件 graphviz

step 1. 安裝 Homebrew ,一樣在我們的新環境下執行

Homebrew 我們可以理解為一種安裝方式,例如 python 的模組安裝是使用 pip ,而在 macOS,Homebrew 就是最被廣為使用的套件管理工具。

在終端機上輸入上串指令以安裝

step 2. 安裝 graphviz

以上就是我們這次文章主要會用到的模組了!不過在新環境裡,XGBoost 沒有部份我們需要的模組,就得另外安裝一下,各模組中間用空格隔開

安裝 jupyter notebook

step 1. 開啟 anaconda,環境選擇我們剛剛新建立的名稱

step 2. 在 jupyter notebook 點選 install

大功告成

最後趕快在 jupyter 檢視是否成功安裝!

資料庫使用

本文章將使用 台灣_多因子DB(TWN/AFF_RAW) 裡面所提供的交易因子,作為演算法需的變數,此資料庫參考 Kenneth R. French 網頁及 2000 年以來於財金前三大期刊 (JF、RFS、JFE) 發表的重要且有用投資因子,將各學者衡量因子的指標,利用台灣市場資料計算好,以月頻率方式將所有指標的資料整理好。

資料庫欄位

結論

本文章上半部分為講解模組安裝,相信大部分的人在一開始接觸程式時,一定會到許多安裝上的狀況,裝來裝去還是沒辦法成功,最後電腦要整台重灌,因此環境的安排也是一個重要的課題喔!在大家都成功安裝後,文章下半部分會開始使用資料庫,處理數據,把資料餵給模型,最後得出我們要的預測值,作為我們投資的參考。

延伸閱讀

相關連結

給我們鼓勵
之後會持續分享更多財金資料庫的應用
如果你的覺得今天的文章不錯,可以幫我們在下面的
掌聲 icon 點 1下
如果覺得超讚,可以按住
掌聲 icon 不放直到 50 下
有任何想法歡迎點選
留言 icon和我們討論

--

--

TEJ 台灣經濟新報
TEJ-API 金融資料分析

TEJ 為台灣本土第一大財經資訊公司,成立於 1990 年,提供金融市場基本分析所需資訊,以及信用風險、法遵科技、資產評價、量化分析及 ESG 等解決方案及顧問服務。鑒於財務金融領域日趨多元與複雜,TEJ 結合實務與學術界的精英人才,致力於開發機器學習、人工智慧 AI 及自然語言處理 NLP 等新技術,持續提供創新服務