fin-ml

GitHub
1.2k 488 简单 2 次阅读 3天前开发框架
AI 解读 由 AI 自动生成,仅供参考

fin-ml 是一个面向金融领域的机器学习与数据科学开源项目,提供了丰富的 Jupyter Notebook 案例教程。这些notebooks 源自 O'Reilly 出版的《Machine Learning and Data Science Blueprints for Finance》一书,涵盖了金融数据分析、量化投资、风险管理等多个实际应用场景。

对于想要将机器学习应用于金融领域的学习者和从业者来说,fin-ml 解决了入门门槛高、缺乏实战案例的问题。项目提供了可直接运行的代码示例,用户既可以在本地通过 Anaconda 环境运行,也可以直接在 Binder 或 Google Colab 等在线平台上浏览和执行,无需复杂的环境配置。

这个项目特别适合金融分析师、量化研究员、数据科学爱好者以及相关专业的学生。无论你是想学习 Python 数据分析,还是希望将机器学习技术应用到股票预测、资产组合优化、信用风险评估等具体场景,都能从中获得实用的参考。

技术层面,fin-ml 的亮点在于提供了完整的端到端案例流程,从数据获取、特征工程、模型构建到结果分析均有详细代码展示,并且兼容主流的机器学习框架。

使用场景

某券商量化研究团队的 junior 分析师小李,需要在一周内完成一份关于A股市场因子挖掘的研究报告,用于向投资决策委员会展示机器学习在选股策略中的应用效果。

没有 fin-ml 时

  • 小李需要自己从 Wind 或 Tushare 下载数据,再逐行编写数据清洗、缺失值处理、标准化等基础代码,光是数据预处理就花了 3 天
  • 网上关于金融机器学习的教程要么过于理论化,要么代码质量参差不齐,小李花了大量时间筛选和验证开源代码的正确性
  • 在实现 PCA 降维和聚类分析时,小李对金融数据的特性把握不足,特征选择和参数调优全靠试错,模型效果始终不理想
  • 由于缺乏系统性框架,小李的报告结构混乱,向非技术背景的决策者解释模型逻辑时非常吃力
  • 临近截止日期,小李还在为代码调试和可视化图表发愁,无法专注于策略逻辑本身的优化

使用 fin-ml 后

  • fin-ml 提供了完整的 Chapter 7 案例(无监督学习-降维与投资组合管理),小李直接复用其中的数据处理流程,将预处理时间压缩到半天
  • 仓库中的 Jupyter Notebook 包含了针对金融数据优化的代码实现和详细注释,小李可以快速理解每个步骤的金融含义
  • 案例中演示了如何将 PCA 应用于 Eigen Portfolio 构建,并提供了参数选择的最佳实践,小李的模型效果显著提升
  • fin-ml 的案例结构清晰,配套了完整的数据文件和可视化代码,小李的报告逻辑严谨,图表专业
  • 小李有充足时间进行策略回测和敏感性分析,最终报告获得了投资决策委员会的高度认可

fin-ml 通过提供可直接运行的金融机器学习案例模板,让量化分析师能够快速从零搭建完整的研究流程,将精力聚焦于策略本身的优化而非重复造轮子。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明(若有 TensorFlow 兼容 GPU 可提升性能)

内存

未说明

依赖
notes建议使用 Anaconda 或 Miniconda 管理环境;需安装 git;NLP 章节需额外运行 'python -m spacy download en_core_web_lg' 下载语言模型;推荐使用 requirements.txt 中指定的包版本以确保兼容性;如使用 Google Colab 需手动上传数据文件
python3.5+(推荐 3.6 或更高版本)
spacy
pandas-datareader
keras
dash
dash_daq
quandl
cvxopt
numpy
pandas
scikit-learn
fin-ml hero image

快速开始

金融领域的机器学习和数据科学蓝图 - Jupyter 笔记本

此 GitHub 仓库包含 O'Reilly 书籍《金融领域的机器学习和数据科学蓝图》中的案例研究代码。

您可以通过克隆此仓库并在本地运行 Jupyter 来打开您感兴趣的 Jupyter 笔记本。此选项让您可以摆弄代码。在这种情况下,请按照下面的安装说明进行操作。

想要在线玩这些笔记本而无需安装任何东西?

可以使用以下任何服务。

警告:请注意,这些服务提供临时环境:您所做的任何操作都会在一段时间后被删除,因此请确保下载您关心的任何数据。

  • 推荐:在 Binder 中打开它:

  • 注意:Binder 是一个托管服务,书籍的目录将完全像在本地机器上一样打开,无需安装。文件夹内不同文件之间的连接将无缝工作。大多数情况下,Binder 启动快速且运行良好,但当本书的 GitHub 仓库更新时,Binder 会从头创建新环境,这可能需要相当长的时间。此外,某些案例研究,特别是需要更多缓存数据的案例研究可能会比较慢。

  • Colaboratory 中打开此仓库:

只是想快速查看一些笔记本,而不执行任何代码?

使用 jupyter.org 的笔记本查看器 浏览此仓库:

想在您自己的机器上安装此项目?

首先安装 Anaconda(或 Miniconda)、git,如果您有 TensorFlow 兼容的 GPU,请安装 GPU 驱动

接下来,通过打开终端并输入以下命令来克隆此项目(不要在每行开头输入 $ 符号,它们只是表示这些是终端命令):

$ cd $HOME  # 或您喜欢的任何其他开发目录
$ git clone https://github.com/tatsath/fin-ml.git
$ cd fin-ml

如果您不想安装 git,可以改为下载 master.zip,解压它,将结果目录重命名为 fin-ml 并将其移动到您的开发目录。

如果您熟悉 Python 并且知道如何安装 Python 库,请继续安装 requirements.txt 中列出的库,然后跳转到 启动 Jupyter 部分。如果您需要详细说明,请继续阅读。我们鼓励您使用 'requirement.txt' 文件中的包版本。

Python 和所需库

当然,您显然需要 Python。Python 3 如今已在许多系统上预装。您可以通过输入以下命令来检查您拥有的版本(您可能需要将 python3 替换为 python):

$ python3 --version  # 适用于 Python 3

任何 Python 3 版本都可以,最好是 3.5 或更高版本。如果您没有 Python 3,我们建议您安装它。要做到这一点,您有多个选项:在 Windows 或 MacOSX 上,您可以直接从 python.org 下载它。在 MacOSX 上,您也可以使用 MacPortsHomebrew。如果您在 MacOSX 上使用 Python 3.6,需要运行以下命令来安装 certifi 证书包,因为 MacOSX 上的 Python 3.6 没有用于验证 SSL 连接的证书(请参阅此 StackOverflow 问题):

$ /Applications/Python\ 3.6/Install\ Certificates.command

在 Linux 上,除非您知道自己在做什么,否则应该使用系统的打包系统。例如,在 Debian 或 Ubuntu 上,输入:

$ sudo apt-get update
$ sudo apt-get install python3 python3-pip

安装 Anaconda

安装 Python 后,我们建议安装 Anaconda。这是一个包含 Python 和许多科学库的包。您应该选择 Python 3 版本。

使用 pip

安装 Anaconda 应该会安装案例研究中大多数常用的库。鉴于 Anaconda 包可能存在变化,某些库可能已过时,因此学习如何使用 pip 安装 Python 包是一个好主意。

安装 pip

以下是在终端中需要输入的命令,用于使用 pip 进行安装。注意:在以下所有命令中,如果你选择使用 Python 2 而不是 Python 3,必须将 pip3 替换为 pip,将 python3 替换为 python

首先需要确保已安装最新版本的 pip。如果你使用的是最新版本的 Python,pip 应该已经安装了。你可以使用以下命令检查。

$ pip -V

如果没有安装 pip,可以在 Linux 上运行以下命令

$ sudo apt-get install python3-pip

或者下载 get-pip.py 并在 Windows 上使用以下命令安装

$ python3 get-pip.py

如果已经安装了 pip,最好将其升级到最新版本。

$ python3 -m pip install --user --upgrade pip

--user 选项将只为当前用户安装最新版本的 pip。如果你想在系统范围内安装(即为所有用户安装),你必须具有管理员权限(例如在 Linux 上使用 sudo python3 而不是 python3),并且应该删除 --user 选项。以下使用 --user 选项的命令也是如此。

创建虚拟环境(可选)

接下来,你可以选择创建一个隔离环境(virtual environment)。这是推荐的做法,因为它可以为每个项目创建不同的环境(例如,本项目一个环境),每个环境可以包含完全不同的库和版本:

$ python3 -m pip install --user --upgrade virtualenv
$ python3 -m virtualenv -p `which python3` env

这将在当前目录中创建一个名为 env 的新目录,其中包含基于 Python 3 的隔离 Python 环境。如果系统上安装了多个版本的 Python 3,你可以将 `which python3` 替换为你喜欢的 Python 可执行文件路径。

现在你必须激活这个环境。每次你想使用这个环境时,都需要运行这个命令。

$ source ./env/bin/activate

在 Windows 上,命令略有不同:

$ .\env\Scripts\activate

安装 Python 包

接下来,使用 pip 安装所需的 Python 包。如果不使用虚拟环境(virtualenv),应该添加 --user 选项(或者可以在系统范围内安装库,但这可能需要管理员权限,例如在 Linux 上使用 sudo pip3 而不是 pip3)。

以下命令用于安装特定版本的 Python 包。

$ pip3 install <PACKAGE>==<VERSION>

如果想从文件安装一系列包,可以使用以下命令。

$ python3 -m pip install --upgrade -r requirements.txt

太棒了!你已经设置好了,现在只需要启动 Jupyter 即可。

安装包模型

对于自然语言处理(Natural Language Processing)这一章,我们将使用 spaCy Python 包。安装 spaCy 不会安装语言模型(language models)。为此,我们需要打开 Python 并使用以下命令自行安装。

$ python -m spacy download en_core_web_lg

启动 Jupyter

好的!现在可以启动 Jupyter,只需输入:

$ jupyter notebook

这将打开浏览器,你应该会看到 Jupyter 的树形视图,显示当前目录的内容。如果浏览器没有自动打开,请访问 127.0.0.1:8888。点击 index.ipynb 开始!

在 Jupyter 中使用 pip 安装库

如果在 Jupyter 笔记本中安装库后无法导入,可能是因为安装到了系统 Python 环境中。我们可以使用 Jupyter 笔记本开头的 ! 符号来安装包。以下是截至目前最新 Anaconda 包之外所需的库。

$ !pip install spacy
$ !pip install pandas-datareader
$ !pip install keras
$ !pip install dash
$ !pip install dash
$ !pip install dash_daq
$ !pip install quandl
$ !pip install cvxopt

想查看各个案例研究或 Jupyter 笔记本吗?

###金融应用笔记本

1. 交易策略与算法交易

使用分类方法的比特币交易策略
比特币交易 - 使用降维(Dimensionality Reduction)提升速度和准确性
配对交易策略的聚类分析(Clustering)
基于强化学习(Reinforcement Learning)的交易策略
基于自然语言处理(NLP)和情感分析的交易策略

2. 投资组合管理与智能投顾

投资者风险容忍度与智能投顾 - 使用监督回归(Supervised Regression)
智能投顾仪表盘 - 由机器学习驱动
投资组合管理 - 特征投资组合(Eigen Portfolio)- 使用降维(Dimensionality Reduction)
投资组合管理 - 投资者聚类分析
分层风险平价(Hierarchical Risk Parity)- 使用聚类分析
投资组合配置 - 使用强化学习(Reinforcement Learning)

3. 衍生品定价与对冲

衍生品定价 - 使用监督回归(Supervised Regression)
衍生品对冲 - 使用强化学习(Reinforcement Learning)

4. 资产价格预测

股票价格预测 - 使用回归和时间序列(Regression and Time Series)
收益率曲线预测 - 使用回归和时间序列
收益率曲线构建与利率建模 - 使用降维(Dimensionality Reduction)

5. 欺诈检测

欺诈检测 - 使用分类方法(Classification)

6. 贷款违约概率预测

贷款违约概率 - 使用分类方法(Classification)

7. 聊天机器人与自动化

数字助手聊天机器人 - 使用自然语言处理(NLP)
文档摘要 - 使用自然语言处理(NLP)

按机器学习类型分类的 Notebook

1. 监督学习 - 回归和时间序列模型

股票价格预测
衍生品定价
投资者风险承受能力和智能投顾
收益率曲线预测

2. 监督学习 - 分类模型

欺诈检测
贷款违约概率
比特币交易策略

3. 无监督学习 - 降维模型

投资组合管理 - 特征投资组合
收益率曲线构建和利率建模
比特币交易 - 提升速度和精度

4. 无监督学习 - 聚类

配对交易的聚类
投资组合管理 - 投资者聚类
分层风险平价

5. 强化学习

基于强化学习的交易策略
衍生品对冲
投资组合配置

6. 自然语言处理

基于自然语言处理和情感分析的交易策略
数字助手-聊天机器人
文档摘要

不同机器学习类型的主模板

监督学习 - 回归和时间序列
监督学习 - 分类
无监督学习 - 降维
无监督学习 - 聚类
自然语言处理

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架