加权自动机谱学习的python模块
scikit-splearn的Python项目详细描述
scikit splearn包是用于光谱学习算法的python scikit工具箱。
这些算法旨在利用hankel矩阵学习加权自动机(wa)。因此,工具箱还为wa提供了一个类(有许多有用的方法),为hankel matrix提供了另一个类,以及一个用于加载数据的类。由于wa是经典概率自动机(因此是hmm)的一个推广,所以一切都适用于这些简单的模型。
学习算法的核心是计算hankel矩阵的奇异值分解,然后根据分解的元素构造加权自动机。这是在课堂学习中完成的。
在经典版本中,hankel矩阵的行是前缀,列是后缀。每个单元格包含序列以相应前缀开始并以相应后缀结束的概率。在学习的情况下,细胞包含观察到的频率。scikit splearn提供了其他版本,其中每个单元格包含相应序列是前缀、后缀或因子的概率。
形式上,hankel矩阵是双无限的。因此,在学习的情况下,一个人必须集中于有限的部分。lrows和lcolumn参数允许指定将哪些子序列作为有限矩阵的行和列来考虑。如果不提供列表,而是提供整数,则有限矩阵将具有与这些给定长度的子序列相对应的所有行和列。
学习方法还需要矩阵的秩信息。这个秩对应于计算矩阵的最小wa的状态数(在学习的情况下,这是目标自动机的估计状态数)。没有简单的方法来评估排名,通常使用交叉验证方法来寻找可能的最佳值。
最后,scikit splearn提供了两种存储hankel矩阵的方法:一种是将经典的hankel矩阵存储为数组,另一种是使用scipy.sparse的稀疏版本。
最初的scikit splearn工具箱是用python在LabEx Archimède作为LIS项目开发的。
这个软件包以及scikit splearn工具箱是根据bsd许可证发布的免费软件。
最新版本的scikit splearn可以从下面下载 PyPI page。
文档是可用的here。
还有一个gitlab repository,它提供了管理源代码和报告问题的git存储库。
历史记录
1.0.0(2016-06-30)
- 第一个版本
1.0.1(2016-10-07)
- 错误设置更正
1.1.0(2018-15-02)
- 添加IO函数
- 折让
- 点显示方法
1.2.0(2018-22-02)
- 为automata添加点导出
- 为automata和hankel添加yalm和json导入和导出
- 增加随机svd作为稠密hankel矩阵计算的一种选择。
- Rebase:删除学习类+一些新功能
- 更新文档。