Python module for spectral learning of weighted automata
Project description
The **SCIKIT-SPLEARN** package is a Python tool of the
`Scikit-Spectral Learning (scikit-splearn)
<http://splearning.sourceforge.net/>`_, scikit-splearn is a toolbox in
python for spectral learning algorithms.
scikit-splearn is a sckit compatible SP2Learning toolbox.
scikit-splearn is a toolbox in python for spectral learning algorithms.
These algorithms aim at learning Weighted Automata (WA) using what is
named a Hankel matrix.
The toolbow thus provides also a class for WA (with a bunch of usefull
methods), another one for Hankel matrix, and a class for loading
data and/or automata, and a class Sample that allows the storage of the
data in a usefull dictionnary form. As WA are a generalisation of
classical Probabilistic Automaton, everything works for these simpler
models.
The core of the learning algorithms is to compute a singular values
decomposition of the Hankel matrix and then to construct the weighted
automata from the elements of the decomposition. This is done in the
class Learning.
In its classic version, the rows of the Hankel matrix are prefixes while
its columns are suffixes. Each cell contains then the probability of the
sequence starting with the corresponding prefix and ending with the
corresponding suffix. In the case of learning, the cells contain
observed frequencies. scikit-splearn provides other versions, where each
cell contains the probability that the corresponding sequence is prefix,
a suffix, or a factor.
Formally, the Hankel matrix is bi-infinite. Hence, in case of learning,
one has to concentrate on a finite portion. The parameters lrows and
lcolumn allows to specified which subsequences are taken into account
as rows and columns of the finite matrix. If, instead of a list,
an integer is provided, the finite matrix will have all rows and
columns that correspond to subsequences up to these given lengths.
The learning method requires also the information about the rank of
the matrix. This rank corresponds to the number of states of a minimal
WA computing the matrix (in case of learning, this is the estimated
number of states of the target automaton). There is no easy way to
evaluate the rank, a cross-validation approach is usually used to find
the best possible value.
Finally, splearn provides 2 ways to store the Hankel matrix:
a classical one as an array, and a sparse version using scipy.sparse.
The original scikit-splearn Toolbox is developed in Python at
`LabEx Archimède <http://labex-archimede.univ-amu.fr/>`_, as a
`LIF <http://www.lif.univ-mrs.fr/>`_ and I2M
project, Aix-Marseille Université.
This package, as well as the scikit-splearn toolbox, is Free software,
released under BSD License.
The latest version of **scikit-splearn** can be downloaded
from the following
`PyPI page `pythonhosted site <http://pythonhosted.org/scikit-splearn/>`_.
The documentation is available as a
`pythonhosted site <http://pythonhosted.org/scikit-splearn/>`_.
`gitlab project <https://gitlab.lif.univ-mrs.fr/dominique.benielli/scikit-splearn>`_,
which provides the git repository managing the source code and where
issues can be reported.
.. :changelog:
History
=======
1.0.0 (2016-06-30)
------------------
First version
.. -*- mode: rst -*-
History
-------
People
------
.. hlist::
* François Denis
* Rémi Eyraud
* Denis Arrivault
* Dominique Benielli
`Scikit-Spectral Learning (scikit-splearn)
<http://splearning.sourceforge.net/>`_, scikit-splearn is a toolbox in
python for spectral learning algorithms.
scikit-splearn is a sckit compatible SP2Learning toolbox.
scikit-splearn is a toolbox in python for spectral learning algorithms.
These algorithms aim at learning Weighted Automata (WA) using what is
named a Hankel matrix.
The toolbow thus provides also a class for WA (with a bunch of usefull
methods), another one for Hankel matrix, and a class for loading
data and/or automata, and a class Sample that allows the storage of the
data in a usefull dictionnary form. As WA are a generalisation of
classical Probabilistic Automaton, everything works for these simpler
models.
The core of the learning algorithms is to compute a singular values
decomposition of the Hankel matrix and then to construct the weighted
automata from the elements of the decomposition. This is done in the
class Learning.
In its classic version, the rows of the Hankel matrix are prefixes while
its columns are suffixes. Each cell contains then the probability of the
sequence starting with the corresponding prefix and ending with the
corresponding suffix. In the case of learning, the cells contain
observed frequencies. scikit-splearn provides other versions, where each
cell contains the probability that the corresponding sequence is prefix,
a suffix, or a factor.
Formally, the Hankel matrix is bi-infinite. Hence, in case of learning,
one has to concentrate on a finite portion. The parameters lrows and
lcolumn allows to specified which subsequences are taken into account
as rows and columns of the finite matrix. If, instead of a list,
an integer is provided, the finite matrix will have all rows and
columns that correspond to subsequences up to these given lengths.
The learning method requires also the information about the rank of
the matrix. This rank corresponds to the number of states of a minimal
WA computing the matrix (in case of learning, this is the estimated
number of states of the target automaton). There is no easy way to
evaluate the rank, a cross-validation approach is usually used to find
the best possible value.
Finally, splearn provides 2 ways to store the Hankel matrix:
a classical one as an array, and a sparse version using scipy.sparse.
The original scikit-splearn Toolbox is developed in Python at
`LabEx Archimède <http://labex-archimede.univ-amu.fr/>`_, as a
`LIF <http://www.lif.univ-mrs.fr/>`_ and I2M
project, Aix-Marseille Université.
This package, as well as the scikit-splearn toolbox, is Free software,
released under BSD License.
The latest version of **scikit-splearn** can be downloaded
from the following
`PyPI page `pythonhosted site <http://pythonhosted.org/scikit-splearn/>`_.
The documentation is available as a
`pythonhosted site <http://pythonhosted.org/scikit-splearn/>`_.
`gitlab project <https://gitlab.lif.univ-mrs.fr/dominique.benielli/scikit-splearn>`_,
which provides the git repository managing the source code and where
issues can be reported.
.. :changelog:
History
=======
1.0.0 (2016-06-30)
------------------
First version
.. -*- mode: rst -*-
History
-------
People
------
.. hlist::
* François Denis
* Rémi Eyraud
* Denis Arrivault
* Dominique Benielli
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
scikit-splearn-1.0.0.tar.gz
(20.4 kB
view details)
File details
Details for the file scikit-splearn-1.0.0.tar.gz
.
File metadata
- Download URL: scikit-splearn-1.0.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab97f8df6263f9c1cc3d5d30e9266e53a7a481e70691862a86a821f886c197d9 |
|
MD5 | cd1fb1c5d70a4ef801fc1742a525dd3a |
|
BLAKE2b-256 | 1297c2825773690221f3eb13af877ee897dc89b697fd0050aca6b8621d23be53 |