- 用监督学习回归模型开发算法交易策略和衍生品定价模型。
- 用监督学习分类模型预测信货违约概率,检测欺诈行为。
- 用降维技术解决投资组合管理和收益率曲线构造问题。
- 为实现交易策略和管理投资组合,用降维和聚类技术寻找相似资产。
- 用强化学习模型和技术开发交易策略、衍生品对冲策略,管理投资组合。
- 用NLTK和scikit-learn等Python库解决金融领域自然语言处理问题。
今后几年,机器学习和数据科学将在金融业掀起巨变。对冲基金、投资和零售银行、金融科技从业者可从本书学到金融业核心机器学习算法。本书不仅介绍监督学习、无监督学习和强化学习三大类机器学习技术和自然语言处理(NLP)技术相关概念,还通过近20个案例研究,详细介绍它们在金融领域的应用。
本书涵盖投资组合管理、算法交易、衍生品定价、欺诈检测、资产价格预测、情感分析和聊天机器人开发等主題,不论你是分析师、交易员、研究员或开发者,总有适合你深入学习的内容。本书将带你探究真实问题,学习科学可靠的解决方案。重点代码详细解读,并佐以示例。本书代码库更配有完整代码和运行结果,钻研、运行代码和比对结果更便捷。
前言
机器学习在金融业的价值日益显著。可以预见,金融市场运转必将离不开机器学习。分析师、投资组合经理、交易员和首席投资官都应熟悉机器学习。银行和其他金融机构正力求改进金融分析技术,简化流程,并增强安全性,而机器学习逐渐成为其首选技术。机器学习在金融机构的应用呈上升趋势,它有潜力改进各种系统,这一点体现在交易策略、定价和风险管理上。
尽管机器学习正对金融服务业所有垂直领域产生重大影响,但一道鸿沟横亘于机器学习算法的理念和实现之间。网上有关这些领域的材料铺天盖地,可条理清楚者少之又少。此外,大多数材料跑不出机器学习在算法交易中的应用这一主题。本书则填补该空白,为金融市场量身打造机器学习工具箱。读者掌握这些工具,就可在用机器学习变革金融业的浪潮中一展身手。本书突破投资或交易策略领域,放眼用机器学习技艺研制金融业核心算法的全貌。
人们常以为机器学习模型较难实现,但金融业的机器学习模型并不难。人们还误以为建模必须要用大数据。有鉴于此,本书准备大量案例研究,它们几乎涵盖机器学习的所有领域,以帮助读者消除这类误解。机器学习在交易策略中的应用,其相关理论和案例研究,本书会介绍,但除此之外,本书还将深入其他关键、必知概念,比如投资组合管理、衍生品定价、欺诈检测、企业信用评级、智能投顾开发和聊天机器人开发。本书着力解决金融业从业人员所面对的实际问题,提供经科学论证、真实可靠的解决方案,并佐以代码和示例。
本书Python 代码库用GitHub 托管(https://github.com/tatsath/fin-ml),该仓库对金融业从业人员非常有用,他们可将该仓库作为自己项目的起点。本书示例和案例研究所展示技术可轻松应用于多种数据集。本书面向未来的案例研究,如用强化学习处理交易,搭建智能投顾,用机器学习为金融产品定价,鼓励读者跳出既有思维模式,调动积极性,发挥模型和数据作用,获得最大回报。
目标读者
本书内容编排和所有主题适合在对冲基金、投资和零售银行、金融科技公司工作的专业人士。其职位可能是数据科学家、数据工程师、量化研究员、机器学习架构师或软件工程师。此外,本书还适合坚守支持岗位的专业人士,比如合规与风控岗。读者不论是对冲基金量化交易员,正考虑采用强化学习技术交易加密货币,还是投行量化分析师,寻求用机器学习技术改进定价模型的校准速度,本书都将有所帮助。对于模型开发生命周期的每一步,从构思产生到模型实现,本书所讲理论、概念和代码库都极其有用。读者可用本书共享代码库,自行测试本书所提供的解决方案。因此读者在阅读之余,还有大量动手机会。读者应具备统计学、机器学习和Python基础知识。
内容编排
本书全面介绍如何用机器学习和数据科学技术设计模型,解决金融业不同领域的学习任务。本书内容分为四大部分:
第一部分 框架
第一部分概括机器学习在金融业的使用情况,总览机器学习实现的构建单元。这几章作为本书后续章节案例研究的基础,涵盖不同机器学习类型。
第一部分含以下3 章:
第1 章,金融机器学习简介。
本章概括金融机器学习应用全貌,并扼要介绍几种机器学习方法。
第2 章,用Python 开发机器学习模型。
本章探讨Python 机器学习生态系统,并介绍用Python 框架开发机器学习模型的步骤。
第3 章,人工神经网络。
鉴于人工神经网络(ANN)是多种机器学习的主要算法,本章将介绍ANN的细节,并给出用Python 库实现ANN 模型的详细过程。
第二部分 监督学习
第二部分涵盖基本的监督学习算法,阐述其特定应用,研究相关案例。
第二部分含以下3 章:
第4 章,监督学习:模型和概念。
本章简要介绍监督学习技术(分类和回归)。鉴于大量模型既可用于分类又可用于回归,本章将这些模型的细节和分类、回归问题中的模型选择和评价标准放在一起介绍。
第5 章,监督学习:回归(含时间序列模型)。
监督学习回归模型是金融业最常用机器学习模型。本章从基本线性回归模型一直讲到高级深度学习模型。本章研究股价预测模型、衍生品定价模型和投资组合管理模型。
第6 章,监督学习:分类。
分类是监督学习的子类,其目标是根据过去所观察到的实例,预测新实例的类别标签,这些标签是与数值型相对的类别型。本章研究分类技术在金融业的应用,比如对率回归、支持向量机和随机森林。
第三部分 无监督学习
第三部分涵盖基本的无监督学习算法、应用和案例研究。
第三部分含以下2 章:
第7 章,无监督学习:降维。
本章介绍几种重要降维技术,用其削减数据集特征数,可保留特征的大多数有用和特异信息。本章还将讨论降维方法主成分分析,案例研究包括投资组合管理、交易策略和收益率曲线构造。
第8 章,无监督学习:聚类。
本章介绍聚类算法和技术,它们可将具有一定相似度的对象聚在一起。本章案例研究介绍聚类在交易策略、投资组合管理中的应用。
第四部分 强化学习和自然语言处理
第四部分介绍强化学习和自然语言处理技术。
第四部分含以下2 章:
第9 章,强化学习。
本章介绍强化学习概念,做相关案例研究。该学习方法在金融业有着广阔的应用前景。强化学习的主要理念最大奖赏,完美契合金融业多个领域的核心动机。本章案例研究包括交易策略、投资组合优化和对冲策略。
第10 章,自然语言处理。
本章介绍自然语言处理技术,并讨论金融业多个领域的文本数据是如何一步步转换为有意义的文本表示形式的。本章案例研究涵盖情感分析、聊天机器人和文档解读。
排版约定
本书排版遵循以下约定:
斜体(Italic)
表示新术语、URL、邮件地址、文件名和文件扩展名。
等宽字体(constant width)
表示程序片段和段落中出现的编程元素,如变量、函数名、数据库、数据类型、环境变量、语句和关键字。
使用代码示例
本书(案例研究和主模板)所有代码均可从以下GitHub 目录获取:https://github.com/tatsath/fin-ml。此外,本书代码还用云平台托管,每个案例研究点击https://mybinder.org/v2/gh/tatsath/fin-ml/master 即可运行,无需在本地机器安装任何包。本书旨在帮你完成工作。一般来讲,书中示例代码,你用于自己项目和文档,无需联系我们征得许可,但大量复制代码另议。例如,你写程序使用书中多处代码,无需我们授权,但出售或分发OReilly 图书示例代码,则需我们授权。引用本书内容或示例代码回答问题,无需授权。但在你产品文档中大量使用本书示例代码,则需经我们授权。
所用之处,如能添加内容出处,我们将非常感激,当然这并非必须。出处通常要标明书名、作者、出版社和ISBN 号。例如:Machine Learning and Data Science Blueprints for Finance by Hariom Tatsat, Sahil Puri, and Brad Lookabaugh (OReilly,2021), 978-1-492-07305-5。
如果你觉得示例代码的使用方式可能不当或超出上述许可范围,请联系我们,邮箱是 permissions@oreilly.com。
Python 库
本书使用Python 3.7。建议先安装Conda 包管理器,再建Conda 环境,安装必要的包。安装指南请见本书GitHub 仓库的README 文件(https://github.com/tatsath/fin-ml)。
OReilly 在线学习平台(OReilly Online Learning)
近40 年来,OReilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
公司独有的专家和改革创新者网络通过OReilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。OReilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自OReilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。
联系我们
任何有关本书的意见或疑问,请按照以下地址联系出版社。
美国:
OReilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书做了一个网页,将勘误信息、示例代码和其他附加信息列在上面。地址是https://oreil.ly/ML-and-data-science-blueprints。
对本书的评论或技术性问题,请发电子邮件至:errata@oreilly.com.cn。
如欲了解OReilly 图书、课程的新闻和信息,请访问以下网站: http://www.oreilly.com。
我们的Facebook:http://facebook.com/oreilly。
我们的Twitter:http://twitter.com/oreillymedia。
我们的YouTube:http://www.youtube.com/oreillymedia。
致谢
我们衷心感谢为本书付梓而辛勤付出的所有人。我们特别感谢Jeff Bleiel 那诚挚和发人深省的反馈,他指导我们完成本书。我们非常感激Juan Manuel Contreras、Chakri Cherukuri 和Gregory Bronner,他们百忙之中抽时间详细审阅本书,其反馈和建议非常有价值,我们受益颇多。我们还要把感谢送给OReilly 公司各位出色的员工,特别感谢Michelle Smith 对该写作项目深信不疑,并帮我们界定项目范围。
来自Hariom 的特别致谢
感谢妻子Prachi 和父母对我的关爱和支持。特别感谢父亲,他总是鼓励我的各种追求,并源源不断提供灵感。
来自Sahil 的特别致谢
感谢家庭。他们总是鼓励和支持我的各种努力。
来自Brad 的特别致谢
感谢妻子Megan,她对我的爱和支持无穷无尽。
Hariom Tatsat现任纽约投行量化分析部副总。Hariom 拥有丰富的预测建模、金融工具定价和风险管理经验。Sahil Puri是一名量化研究员。Sahil曾用多种统计和机器学习技术解决各种问题。Brad Lookabaugh现任Unison Investment Management副总,负责投资组合管理。
目录
前言 . 1
第一部分 框架
第1 章 金融机器学习简介 .11
1.1 金融机器学习应用的现状和前景 .12
1.1.1 算法交易 .12
1.1.2 投资组合管理和智能投顾 12
1.1.3 欺诈检测 .12
1.1.4 贷款、信用卡和保险审核 13
1.1.5 自动化和聊天机器人.13
1.1.6 风险管理 .14
1.1.7 资产价格预测 14
1.1.8 衍生品定价 14
1.1.9 情感分析 .14
1.1.10 金融资产结算 .15
1.1.11 反洗钱 15
1.2 机器学习、深度学习、人工智能和大数据 .15
1.3 机器学习类型 .17
1.3.1 监督学习 .17
1.3.2 无监督学习 18
1.3.3 强化学习 .19
1.4 自然语言处理 .20
1.5 小结 .21
第2 章 用Python 开发机器学习模型 23
2.1 为什么用Python 23
2.2 Python 机器学习包 24
2.3 Python 生态系统的模型开发步骤 .26
2.4 小结 .41
第3 章 人工神经网络 . 43
3.1 人工神经网络:架构、训练和超参数 44
3.1.1 架构 44
3.1.2 训练 46
3.1.3 超参数 48
3.2 用Python 建人工神经网络模型 .52
3.2.1 安装Keras 等机器学习包52
3.2.2 提高人工神经网络模型运行速度:GPU 和云服务 55
3.3 小结 .57
第二部分 监督学习
第4 章 监督学习:模型和概念 61
4.1 监督学习模型概览 62
4.1.1 线性回归(普通最小二乘法) .64
4.1.2 正则化回归 66
4.1.3 对数概率回归 69
4.1.4 支持向量机 70
4.1.5 k 近邻 72
4.1.6 线性判别分析 74
4.1.7 分类回归树 75
4.1.8 集成模型 .77
4.1.9 人工神经网络模型 .83
4.2 模型性能 85
4.2.1 过拟合和欠拟合 85
4.2.2 交叉检验 .87
4.2.3 评估指标 .88
4.3 模型选择 92
4.3.1 影响模型选择的因素.92
4.3.2 模型取舍 .94
4.4 小结 .94
第5 章 监督学习:回归(含时间序列模型) 97
5.1 时间序列模型 100
5.1.1 拆解时间序列 .100
5.1.2 自相关性和平稳性 102
5.1.3 传统时间序列模型(包括ARIMA 模型)104
5.1.4 时间序列建模的深度学习方法 106
5.1.5 为监督学习模型调整时间序列数据 109
5.2 案例研究1:股价预测 110
5.3 案例研究2:衍生品定价 130
5.4 案例研究3:投资者风险容忍度和智能投顾 142
5.5 案例研究4:收益率曲线预测 .158
5.6 小结 167
5.7 练习 168
第6 章 监督学习:分类 . 169
6.1 案例研究1:欺诈检测 171
6.2 案例研究2:预测借款拖欠概率 185
6.3 案例研究3:比特币交易策略 .199
6.4 小结 211
6.5 练习 211
第三部分 无监督学习
第7 章 无监督学习:降维 . 215
7.1 降维技术 .217
7.1.1 主成分分析 .217
7.1.2 核主成分分析 .221
7.1.3 t-SNE221
7.2 案例研究1:投资组合管理:寻找特征组合 222
7.3 案例研究2:收益率曲线构造和利率建模 237
7.4 案例研究3:比特币交易:提高速度和准确率 248
7.5 小结 257
7.6 练习 257
第8 章 无监督学习:聚类 . 259
8.1 聚类技术 .261
8.1.1 k 均值聚类 261
8.1.2 层次聚类 262
8.1.3 亲和力传播聚类 264
8.2 案例研究1:配对交易聚类 265
8.3 案例研究2:投资组合管理:投资者聚类 282
8.4 案例研究3:层次风险平价 291
8.5 小结 301
8.6 练习 301
第四部分 强化学习和自然语言处理
第9 章 强化学习 305
9.1 强化学习的理论和概念 307
9.1.1 强化学习建模框架 312
9.1.2 强化学习模型 .317
9.1.3 强化学习的主要挑战322
9.2 案例研究1:用强化学习实现交易策略 .322
9.3 案例研究2:衍生品对冲 341
9.4 案例研究3:投资组合分配 359
9.5 小结 370
9.6 练习 370
第10 章 自然语言处理 371
10.1 Python 的NLP 库 373
10.1.1 NLTK 库 .373
10.1.2 TextBlob 库 374
10.1.3 spaCy 库 .374
10.2 NLP 理论和概念 374
10.2.1 预处理 .375
10.2.2 特征表示 381
10.2.3 推断 385
10.3 案例研究1:用NLP 和情感分析技术实现交易策略 . 388
10.4 案例研究2:聊天机器人数字助理 . 411
10.5 案例研究3:文档摘要 .421
10.6 小结 428
10.7 练习 429