XGBoost 演算法預測報酬(上)

Xgboost
Photo Credits: 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

xgboost

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

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

Windows 系統的話可以點 Anaconda Prompt

xgboost
windows

輸入建立環境指令

conda create -n 新環境名稱 python==3.8
xgboost

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

conda env list

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

step 3. 啟用環境

conda activate 新環境名稱

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

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

conda env remove -n 新環境名稱

安裝 XGBoost

step 1. 啟用環境

conda activate 新環境名稱

step 2. 輸入指令安裝

conda install py-xgboost

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

xgboost

安裝 XGBoost 視覺化套件 graphviz

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

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

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

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

step 2. 安裝 graphviz

brew install graphviz

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

pip install pandas matplotlib tejapi

安裝 jupyter notebook

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

xgboost

step 2. 在 jupyter notebook 點選 install

xgboost

大功告成

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

Xgboost

資料庫使用

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

df = tejapi.get('TWN/AFF_RAW',
                coid = '9921',
                mdate={'gte': '2015-01-01', 'lte':'2020-12-31'}
                chinese_column_name = True,
                paginate = True)
Xgboost
資料庫欄位

結論

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

延伸閱讀

相關連結

返回總覽頁
Procesing