Advestis / adnmtf

Non-Negative Matrix and Tensor Factorizations

Home Page:https://advestis.github.io/adnmtf/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

doc License: GPL v3

Status

pytests push-pypi push-doc

maintained issues pr

Compatibilities

ubuntu windows unix

python

Contact

linkedin linkedin2 website mail

NMTF

Non-Negative Matrix and Tensor Factorizations

Developped in collaboration with Advestis (Github)

NMF Example

from adnmtf import NMF
import numpy as np

w = np.array([[1, 2],
              [3, 4],
              [5, 6],
              [7, 8],
              [9, 10],
              [11, 12]])

h = np.array([[0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
              [0.9, 0.8, 0.7, 0.6, 0.5, 0.4]])
m0 = w.dot(h)
my_nmfmodel = NMF(n_components=2)
estimator_ = my_nmfmodel.fit_transform(m0)
estimator_ = my_nmfmodel.predict(estimator_)

In this example, the matrix to be factorized is generated by the dot product of:

W
1 2
3 4
5 6
7 8
9 10
11 12
and
H
0.1 0.2 0.3 0.4 0.5 0.6
0.9 0.8 0.7 0.6 0.4 0.4
  • NMF instantiates a NMF class with 2 components.
  • fit_transform calls the functions below in the given order:
    • nmtf_base module: non_negative_factorization, nmf_init, r_ntf_solve
    • nmtf_core module: ntf_solve, ntf_solve_simple, ntf_update
  • predict derives from fit_transform outputs ordered sample and feature indexes for future use in ordered heatmaps. predict calls nmf_predict and build_clusters in the nmtf_base module

NTF Example

from adnmtf import NTF
import pandas as pd

DATA_PATH = ...

df = pd.read_csv(DATA_PATH)
m0 = df.values
n_blocks = 5
my_ntfmodel = NTF(n_components=5)
estimator_ = my_ntfmodel.fit_transform(m0, n_blocks)
estimator_ = my_ntfmodel.predict(estimator_)

In this example, the tensor to be factorized is read in file data_ntf.csv. The tensor has 5 layers in the 3rd dimension and is formatted as a table with 5 blocks concatenated horizontally.

  • NTF instantiates a NTF class with 5 components.
  • fit_transform calls the functions below in the given order:
    • nmtf_base module: non_negative_tensor_factorization, ntf_init, r_ntf_solve
    • nmtf_core module: ntf_solve, ntf_solve_simple, ntf_update
  • predict derives from fit_transform outputs ordered sample and feature indexes for future use in ordered heatmaps. predict calls nmf_predict and build_clusters in the nmtf_base module

Articles

Peer-reviewed articles

Blog articles

About

Non-Negative Matrix and Tensor Factorizations

https://advestis.github.io/adnmtf/

License:MIT License


Languages

Language:Python 100.0%Language:Batchfile 0.0%