Skip to main content

Package to visualise component-based decomposition models such as PCA and PARAFAC

Project description

Tests Status Coverage Status Documentation Status Zenodo DOI JOSS | 10.21105/joss.04754 Code style: Black

TLViz is a Python package for visualising component-based decomposition models like PARAFAC and PCA.

Documentation

The documentation is available on the TensorLy website and includes

Dependencies

TLViz supports Python 3.8 or above (it may also work with Python 3.6 and 3.7, though that is not officially supported).

Installation requires matplotlib, numpy, pandas, scipy, statsmodels and xarray.

Installation

To install the latest stable release of TLViz and its dependencies, run:

pip install tensorly-viz

There is also functionality to create improved QQ-plots with Pingoiun. However, this is disabled by default due to the restrictive GPL lisence. To enable this possibility, you must manually install Pingoiun.

To install the latest development version of TLViz, you can either clone this repo or run

pip install git+https://github.com/marieroald/tlviz.git

Some extra dependencies are needed to run the examples, tests or build the documentation. For more information about installing these dependencies, see the installation guide.

Example

import tlviz
import matplotlib.pyplot as plt
from tensorly.decomposition import parafac

def fit_parafac(dataset, num_components, num_inits):
    model_candidates = [
        parafac(dataset.data, num_components, init="random", random_state=i)
        for i in range(num_inits)
    ]
    model = tlviz.multimodel_evaluation.get_model_with_lowest_error(
        model_candidates, dataset
    )
    return tlviz.postprocessing.postprocess(model, dataset)

data = tlviz.data.load_aminoacids()
cp_tensor = fit_parafac(data, 3, num_inits=3)
tlviz.visualisation.components_plot(cp_tensor)
plt.show()
Loading Aminoacids dataset from:
Bro, R, PARAFAC: Tutorial and applications, Chemometrics and Intelligent Laboratory Systems, 1997, 38, 149-171
An example figure showing the component vectors of a three component PARAFAC model fitted to a fluoresence spectroscopy dataset.

This example uses TensorLy to fit five three-component PARAFAC models to the data. Then it uses TLViz to do the following steps:

  1. Select the model that gave the lowest reconstruction error.

  2. Normalise the component vectors, storing their magnitude in a separate weight-vector.

  3. Permute the components in descending weight (i.e. signal strength) order.

  4. Flip the components so they point in a logical direction compared to the data.

  5. Convert the factor matrices into Pandas DataFrames with logical indices.

  6. Plot the components using matplotlib.

All these steps are described in the API documentation with references to the literature.

Testing

The test suite requires an additional set of dependencies. To install these, run

pip install tlviz[test]

or

pip install -e .[test]

inside your local copy of the TLViz repository.

The tests can be run by calling pytest with no additional arguments. All doctests are ran by default and a coverage summary will be printed on the screen. To generate a coverage report, run coverage html.

Contributing

Contributions are welcome to TLViz, see the contribution guidelines.

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

tensorly_viz-0.1.8.tar.gz (653.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tensorly_viz-0.1.8-py2.py3-none-any.whl (702.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tensorly_viz-0.1.8.tar.gz.

File metadata

  • Download URL: tensorly_viz-0.1.8.tar.gz
  • Upload date:
  • Size: 653.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for tensorly_viz-0.1.8.tar.gz
Algorithm Hash digest
SHA256 ab5ac34b269be0623353a213e5e01729c253893891842d613503f76d7f70838a
MD5 bcda1c8baa4e261a391909014926dfd0
BLAKE2b-256 6b5ecff2aaf8acd1498b2c787546104e2a1e4dc5153bc05640e3f1ff39561952

See more details on using hashes here.

File details

Details for the file tensorly_viz-0.1.8-py2.py3-none-any.whl.

File metadata

  • Download URL: tensorly_viz-0.1.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 702.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for tensorly_viz-0.1.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1178ab5d79ae6dbbfb3a9511829d5e0f4502b43914cf305319b0308320d2f11f
MD5 965dfb0e2974a84e8b67a524a721ca3d
BLAKE2b-256 b39e9a5386e62e859f3fba6a0b86181d0ddd639dc84e3693902a706100e3ce9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page