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()