eGTM: GTM transformer

Run GTM

eGTM is a sklearn-compatible GTM transformer. Similarly to PCA or t-SNE, eGTM reduces the dimensionality from n_dimensions to 2 dimensions. To generate mean GTM 2D projections:

from ugtm import eGTM
import numpy as np

X_train = np.random.randn(100, 50)
X_test = np.random.randn(50, 50)

# Fit GTM on X_train and get 2D projections for X_test
transformed = eGTM().fit(X_train).transform(X_test)

The default output of eGTM.transform is the mean GTM projection. For other data representations (modes, responsibilities), see transform(). Example of generating responsibilities (posterior probabilities for each node on the manifold) and reverse-mapping them to the input space:

from ugtm import eGTM
import numpy as np

X_train = np.random.randn(100, 50)

gtm_model = eGTM(model='responsibilities').fit(X_train)
transformed = gtm_model.transform(X_train)
inverse_transform = gtm_model.inverse_transform(transformed)

Visualize projection

Visualization demo using altair https://altair-viz.github.io:

from ugtm import eGTM
import numpy as np
import altair as alt
import pandas as pd

X_train = np.random.randn(100, 50)
X_test = np.random.randn(50, 50)

transformed = eGTM().fit(X_train).transform(X_test)

df = pd.DataFrame(transformed, columns=["x1", "x2"])
alt.Chart(df).mark_point().encode(
x='x1',y='x2',
tooltip=["x1", "x2"]
).properties(title="GTM projection of X_test").interactive()