【华泰金工】人工智能7:人工智能选股之python实战20170919

上传人:n**** 文档编号:101284931 上传时间:2019-09-27 格式:PDF 页数:39 大小:3.36MB
返回 下载 相关 举报
【华泰金工】人工智能7:人工智能选股之python实战20170919_第1页
第1页 / 共39页
【华泰金工】人工智能7:人工智能选股之python实战20170919_第2页
第2页 / 共39页
【华泰金工】人工智能7:人工智能选股之python实战20170919_第3页
第3页 / 共39页
【华泰金工】人工智能7:人工智能选股之python实战20170919_第4页
第4页 / 共39页
【华泰金工】人工智能7:人工智能选股之python实战20170919_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《【华泰金工】人工智能7:人工智能选股之python实战20170919》由会员分享,可在线阅读,更多相关《【华泰金工】人工智能7:人工智能选股之python实战20170919(39页珍藏版)》请在金锄头文库上搜索。

1、 谨请参阅尾页重要声明及华泰证券股票和行业评级标准 1 证券研究报告证券研究报告 金工研究/深度研究 2017年09月19日 林晓明林晓明 执业证书编号:S0570516010001 研究员 0755-82080134 linxiaoming 陈烨陈烨 010-56793927 联系人 chenye 1金工金工: 人工智能选股之人工智能选股之 Boosting 模型模型 2017.09 2金工金工: 人工智能选股之随机森林模型人工智能选股之随机森林模型 2017.08 3金工金工: 周期三因子定价与资产配置模型周期三因子定价与资产配置模型 2017.08 人工智能选股之人工智能选股之 Pyth

2、on 实战实战 华泰人工智能系列之七 介绍介绍 Python 安装方法、安装方法、与机器学习相关的包与机器学习相关的包以及常用命令以及常用命令 Python 语言是目前机器学习领域使用最广泛的编程语言之一,拥有众多优 秀的包和模块,并且相对简单易学。我们将简单介绍 Python 语言的特性, 常用命令,以及和机器学习相关的包,例如 NumPy,pandas,scikit-learn 等,希望帮助有一定编程基础的读者迅速上手 Python 语言。 机器学习机器学习选股选股框架框架与多因子选股框架类似,具有一定优越性与多因子选股框架类似,具有一定优越性 机器学习中最为主流的方法监督学习,其核心思想

3、是挖掘自变量和因变量 之间的规律。我们将经典多因子模型稍加改造,以机器学习的语言描述。 在训练阶段,根据历史的因子值 X 和收益 r,训练监督学习模型 r=g(X, f), 得到模型自由参数的估计量 f。在测试阶段:根据最新的因子值 X、参数估 计量 f 和监督学习模型 g,预测下期收益 r。机器学习方法相较于线性回归 的优越之处在于:首先,机器学习可以挖掘数据中的非线性规律;其次, 正则化的引入能够筛选出最有效的自变量;再次,参数优化的过程能够遴 选出预测力最强的模型。 将机器学习选股将机器学习选股代码拆分成十代码拆分成十二二个子模块个子模块进行详尽进行详尽讲解讲解 我们将机器学习选股代码拆

4、分成十二个子模块,包括:模块导入、参数设 置、数据读入、数据标记、数据预处理、模型设置、模型训练、模型预测、 模型评价、策略构建、策略评价和结果保存。每个子模块我们将展示代码 并且逐句进行讲解。报告中展示的代码是完备且成体系的,可以根据需要 进行整合,构建一套完整的机器学习选股模型。 风险提示: 通过 Python 编写人工智能选股算法受到数据库架构、 网络环境、 计算机硬件条件限制,报告中代码经移植后可能不能正常运行;通过人工 智能算法构建选股策略是历史经验的总结,存在失效的可能。 相关研究相关研究 金工研究/深度研究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票

5、和行业评级标准 2 图表目录图表目录 图表 1: Anaconda Prompt 命令行窗口 5 图表 2: Anaconda Prompt 安装包 . 6 图表 3: Anaconda Prompt 更新包 . 6 图表 4: help 命令 . 7 图表 5: 列表的操作 7 图表 6: 调入 NumPy 包 8 图表 7: 创建数组 8 图表 8: 构建等差数列. 8 图表 9: 数组重塑 9 图表 10: 计算平方根 9 图表 11: 计算算术平均值 . 9 图表 12: 计算标准差 9 图表 13: 矩阵乘法 10 图表 14: 数组各元素相乘 . 10 图表 15: 四舍五入取整.

6、 10 图表 16: 调入 pandas 包 11 图表 17: 构建 Series 11 图表 18: 构建 DataFrame 12 图表 19: DataFrame 排序 12 图表 20: 去除缺失值 13 图表 21: 数据切片 13 图表 22: DataFrame 合并 14 图表 23: csv 数据文件展示 16 图表 24: 机器学习程序架构 . 16 图表 25: 模块导入代码实例 . 17 图表 26: 参数设置代码实例 . 17 图表 27: 数据标记代码实例 . 19 图表 28: 数据读取代码实例 . 20 图表 29: 数据预处理代码实例 22 图表 30: 回

7、归模型的数据预处理 23 图表 31: 数据标准化代码实例 23 图表 32: SVM 模型设置代码实例. 23 图表 33: 线性回归模型设置代码实例 . 24 图表 34: SGD 模型设置代码实例. 24 图表 35: SVM 模型训练代码实例. 24 图表 36: 线性回归模型训练代码实例 . 25 图表 37: SGD 模型训练代码实例. 25 图表 38: SVM 模型预测代码实例. 26 图表 39: 线性回归模型预测代码实例 . 27 图表 40: SGD 模型预测代码实例. 27 金工研究/深度研究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票和行

8、业评级标准 3 图表 41: 模型评价代码实例 . 28 图表 42: 训练集和交叉验证集模型评价结果展示 . 28 图表 43: 测试集模型评价结果展示 30 图表 44: 策略构建代码实例 . 30 图表 45: 策略评价代码实例 . 31 图表 46: 累积超额收益净值图 32 图表 47: 策略评价结果展示 . 33 图表 48: 数据保存代码实例 . 33 图表 49: csv 结果文件展示 34 图表 50: XGBoost 编译-命令行调用 35 图表 51: XGBoost 编译结果 36 图表 52: XGBoost 安装-命令行图示 36 图表 53: XGBoost mo

9、dule 命令行信息 37 金工研究/深度研究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票和行业评级标准 4 本文研究导读本文研究导读 在华泰人工智能系列的前六篇报告中,我们首先对经典的机器学习方法进行了全面梳理, 随后系统地测试了广义线性模型、支持向量机、朴素贝叶斯方法、随机森林和 Boosting 模型,同时围绕机器学习模型构建选股策略。为了使更多的读者有机会接触到机器学习选 股的实务化操作,本篇报告我们将对机器学习选股的完整代码进行详细讲解,希望对本领 域的投资者产生有实用意义的参考价值。 本文主要包含以下几个环节: 1. Python 语言是目前机器学习领

10、域使用最广泛的编程语言之一, 拥有众多优秀的包和模 块,并且相对简单易学。本篇报告的第一部分,我们将简单介绍 Python 语言的特性, 常用命令,以及与数据分析、机器学习相关的包和模块,例如 NumPy,pandas, scikit-learn 等,希望帮助有一定编程基础的读者迅速上手 Python 语言。 2. 第二部分,我们将介绍机器学习多因子模型的问题背景,将经典的多因子模型转换成 机器学习的语言进行描述。同时我们也将初探机器学习多因子模型的数据格式和程序 框架,为后续的代码实现部分作铺垫。 3. 第三部分,我们将机器学习选股代码拆分成 12 个子模块,包括:模块导入、参数设 置、数据

11、读入、数据标记、数据预处理、模型设置、模型训练、模型预测、模型评价、 策略构建、策略评价和结果保存。每个子模块我们将展示代码并且逐句讲解。 金工研究/深度研究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票和行业评级标准 5 Python 介绍介绍 Python 语言语言 “Life is short, you need Python.” Bruce Eckel 自从 1991 年诞生以来,Python 已经成为一种非常受欢迎的编程语言。与 C/C+等编译型 语言不同,Python 是一门解释性语言,即 Python 程序不需要编译,在运行时才翻译成机 器语言, 每执

12、行一次都需要翻译一次, 因此在运算效率方面不如编译型语言。 但是, Python 不需要关注程序的编译和库的链接等问题,开发工作相比于编译型语言更加轻松;同时, 解释型语言易于移植,适合跨平台的开发。 作为一门简单易学、适合阅读的编程语言,Python 在机器学习的实践中得到了广泛的应 用,其主要有以下优点: 1. 免费,开源,有大量的社区讨论交流资料。 2. 可以专注于逻辑、算法本身,而不是纠结于如何实现某个数据结构。自身的数据结构 应用简单方便,可以大大提高开发效率。 3. 包(package) 、库(library)和模块(module)众多,例如 NumPy、SciPy、pandas、

13、 Matplotlib 可以很方便地进行数据处理,scikit-learn、TensorFlow、Theano、Keras 都是机器学习领域流行的包。 Anaconda 及包的安装及包的安装 安装安装 Anaconda Anaconda 是一个用于科学计算的 Python 发行版本,支持 Linux、Mac、Windows 系统, 提供了包管理与环境管理的功能,可以很方便地解决多版本 Python 并存、切换以及各种 第三方包安装问题,并且已经包含了 Python 和相关的配套工具。Anaconda 界面友好、 使用方便、具有强大的包管理与环境管理功能,推荐本领域的研究者使用。Anaconda

14、 的 下载安装可以通过以下两个途径: 1. 官网安装:https:/www.continuum.io/downloads 按照提示,下载并安装 Anaconda。 2. 清华镜像源: 在国内安装速 度较快。 虽然 Anaconda 已经内嵌了很多包,但在实际运用中,我们可能会用到一些非自带的包。 接下来我们学习在 Windows 下如何安装和更新包:首先,Windows 用户在“开始”中打 开 Anaconda 的文件夹,点击 Anaconda Prompt,得到如下图的命令行窗口。 图表图表1: Anaconda Prompt 命令行窗口命令行窗口 资料来源:华泰证券研究所 金工研究/深度研

15、究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票和行业评级标准 6 安装包安装包 安装包的命令为 conda install, 具体用法为在 Anaconda Prompt 中输入 conda install + 包 的名字。下图展示了安装 scikit-learn 包的过程,Anaconda 将自动搜取包的源。当出现对 话“Proceed?”时,输入“y” ,表示确认安装,等待 Anaconda 自动安装即可。 图表图表2: Anaconda Prompt 安装包安装包 资料来源:华泰证券研究所 更新包更新包 更新包的命令为 conda update。具体用法为在

16、 Anaconda Prompt 中输入 conda update + 包的名称。 下图展示了更新 pandas 包的过程。 当出现对话“Proceed?”时,输入 “y” , 表示确认更新,等待 Anaconda 自动更新即可。 图表图表3: Anaconda Prompt 更新包更新包 资料来源:华泰证券研究所 金工研究/深度研究 | 2017 年 09 月 19 日 谨请参阅尾页重要声明及华泰证券股票和行业评级标准 7 Python 和常用包和常用包初探初探 获取帮助获取帮助 授人以鱼不如授人以渔。当我们不清楚某个命令或者函数的用法时,使用 help 命令获取 帮助是不错的选择,具体用法为 help(函数名)。 图表图表4: help 命令命令 资料来源:华泰证券研究所 上面的例子中,我们使用 help 查询 print 函数的用法。Python 返回 print 的语法以及每个 参数的用法。由于 Python 和包的迭代较快,很多纸质和网络教材编写时依据的 Python 版 本难以保证是最新版,有的函数已被

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号