跳转至

2023 年 3 月

LeetCode 背包问题

本文是我学习背包问题的一些总结。

算法题算是我求职路上的一道坎,我没有数据结构与算法的学习经验,但许多笔试都需要考算法题。我花了两天时间系统学习动态规划中的背包问题,希望能让自己再次遇到这类问题时不再畏惧。之前以为只有计算机系同学才能做出的题目,我也能自己做出来了,这就是学习的收获。

背包问题是指有一个固定容量为c的背包,以及一组物品,每个物品都有自己的重量w[i]和价值p[i]。在不超过背包容量的前提下,选择不同的物品装入背包,使得装入背包中的物品总价值最大。

big-picture

从零开始搭建卷积神经网络组件

本文是深度学习课程的一次练习,使用 Numpy 实现了 CNN 中卷积层、池化层的前向传播与反向传播。

以下是一个典型卷积层的计算过程:

  • 输入张量:\(X \in \mathbb{R}^{M \times N \times D}\)。例:\(D=1\) 时,输入的是 \(M \times N\) 维的灰度图像; \(D=3\) 时,输入的是 \(M \times N\) 维的彩色图像。
  • 卷积核:\(W \in \mathbb{R}^{U \times V \times D \times P}\),其中每个切片矩阵 \(W^{d, p} \in \mathbb{R}^{U \times V}\), \(1 \leq d \leq D, 1 \leq p \leq P\)
  • 输出张量: \(Y \times \mathbb{R}^{M^{\prime} \times N^{\prime} \times P}\)

conv_single_step

稀疏高维协方差矩阵的 Thresholding 估计方法

高维协方差矩阵的一个重要特征就是许多维度之间的协方差非常接近于 0,一个自然的想法就是将矩阵中绝对值太小的元素设为 0,这种方法就是 Thresholding(门限):通过设定某个门限,将绝对值小于该门限的元素设为 0,只保留绝对值大于或等于该门限的元素。

通过 Thresholding 估计方法,我们可以得到一个比样本协方差矩阵更稀疏的估计。学术界提出了两种设置 Thresholding 的方法:Universal thresholding(统一截断)和 Adaptive thresholding(自适应截断)。前者对矩阵中的每一个元素均采用相同的门限标准,而后者基于样本协方差估计的标准误自适应地为每个元素设定门槛。

本文使用模拟的高斯分布数据和真实的高维 DNA 基因数据,比较了 Universal thresholding 和 Adaptive thresholding 的估计效果,所得结果与 Tony Cai & Weidong Liu (2011) 中的结果基本一致。

png

手动实现交叉验证的收获

在实现交叉验证时,要清楚一共有几个循环。每一个候选的超参数,都要在所有折上做训练和验证!

例如,一共有 10 个候选的超参数,进行 5 折交叉验证,那么需要对这 10 个超参数都训练、验证 5 次,一共训练、验证 50 次。

在编码的过程中,我最开始误将一个参数在一个折上做训练和验证,这样做并不能达到交叉验证的效果。

量化投资策略设计与分析 - CTA

本文是 2023 年 3 月 18 日和 3 月 25 日的量化投资策略设计与分析的课程笔记,这两节课介绍了 CTA 策略。

CTA 简介

CTA(Commodity Trading Advisor)策略的历史可以追溯到 1965 年。

传统意义上,CTA 的投资品种仅局限于商品期货。

经过发展,CTA 扩展到了几乎所有期货品种(比如利率期货、股指期货等)。

国内交易标的—期货品种

image-20230318114234096

量化投资策略设计与分析 - 事件驱动策略

本文是 2023 年 3 月 18 日的量化投资策略设计与分析的课程笔记,本节课介绍了常见的事件驱动策略以及实践中的注意事项。

事件驱动策略简介

事件驱动(Event Driven)属于量化投资之中的一个重要类别,涵盖投资机会广泛。广义上说,市场上任何发生的有可能与股票市场相关的新闻、事件、公告均有可能成为事件驱动的投资机会。常见重大事件包括:

image-20230318091012544

基于逐笔委托和逐笔成交数据构造高频因子

量化投资策略设计与分析的第一次作业是基于逐笔数据构造 39 个高频因子。我对高频因子的构造经验比较少,完成这个作业后的一些经验:

  1. 高频因子的数据格式是比较标准化的,但也要注意细节:例如空缺时间的填补等。
  2. 构造因子的过程本质上是数据处理的过程,常用的方法有:groupbyresampleto_datetimereindexrollingapply等。如果是非常大的数据集,应当用 numpy 等更快速的科学计算包,或者用C++

39 个因子表达式

用提供的某支证券为期不超过一周的高频数据复制 Table A2 中 39 种指标。

image-20230314121903928

基于 ChatGPT 的在线问答机器人

本文介绍了如何基于 OpenAI ChatGPT 接口和 feffery components 构建在线问答机器人,并基于 render 实现自动化持续部署。

它支持:

  1. 开启多轮对话模式,它将记住你之前的问题。
  2. 导出当前对话记录为 Markdown 文件,你可以将其保存到本地。
  3. 一键清空当前对话记录。

使用它!

image-20230305114453764