杜伟、陈萍报道

内置降维、聚类等算法,时间序列数据分析Python库Deeptime

本文介绍一个用于分析时间序列数据的 Python 库,可支持数据降维、聚类、马尔可夫状态模型、隐马尔可夫模型等算法。

很多开发者都使用 Python 作为他们的主要开发语言,其中一个原因是 Python 拥有一个强大的标准库。通过各种库函数,开发者可以快速地进行代码编写。本文将为读者介绍一个用于分析时间序列数据的 Python 库:Deeptime。特别地,该库实现了降维聚类马尔可夫模型估计等算法。


此外,该库的 API 与 scikit-learn 的类似,并通过鸭子类型(duck typing)为工具提供基本的兼容性。



项目地址:https://github.com/deeptime-ml/deeptime


安装方法


Deeptime 库安装非常简单,可通过 conda,安装方式如下所示:


git clone https://github.com/deeptime-ml/deeptime.git

cd deeptime
git submodule update --init

conda install numpy scipy cython scikit-learn

python setup.py install


也可通过 pip,安装方式如下所示:


pip install git+https://github.com/deeptime-ml/deeptime.git@master


简要介绍


Deeptime 库支持的算法包括动态数据降维、使用神经网络进行深度降维、SINDy、马尔可夫状态模型、隐马尔可夫模型等。此外该库还提供有使用的 API 文档、日志更新等其他内容。



以上图红框中标出的动态数据降维算法为例,鼠标点击该算法,在一级标题下会出现其包含的子标题。点击你想了解的词条,即可链接到相应的说明文档。例如当你点击 Dimension reduction,会出现下级目录,如 TICA、VAMP/time-lagged CCA 等。点击相应算法即可链接到对应的说明文档。



除此以外,该库也为用户提供了相应的示例研究,以供学习。



Deeptime 详细文档地址:https://deeptime-ml.github.io/

工程Python时间序列
2
相关数据
神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

马尔可夫模型技术

「马尔可夫模型」是指基于马尔可夫性质的模型,其假设一个给定过程的未来状态仅取决于当前状态。根据系统状态是否完全可被观测以及系统是自动的还是受控的,可以将常见的马尔可夫模型分成四种:马尔可夫链、隐马尔可夫模型(HMM)、马尔可夫决策过程(MDP)和部分可观测马尔可夫决策过程(POMDP)。另外还有马尔可夫随机场(MRF)和马尔可夫链蒙特卡洛(MCMC)这两个模型也常常被用于近似和预测。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

隐马尔可夫模型技术

隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~