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
资料库栏位

结论

本文章上半部分为讲解模组安装,相信大部分的人在一开始接触程式时,一定会到许多安装上的状况,装来装去还是没办法成功,最后电脑要整台重灌,因此环境的安排也是一个重要的课题喔!在大家都成功安装后,文章下半部分会开始使用资料库,处理数据,把资料喂给模型,最后得出我们要的预测值,作为我们投资的参考。

延伸阅读

相关连结

返回总览页