Skip to content

Use NMF.inverse_transform when reconstructing the dataset #107

Open
@qinhanmin2014

Description

@qinhanmin2014

In notebook 03-unsupervised-learning

X_train, X_test, y_train, y_test = train_test_split(
    X_people, y_people, stratify=y_people, random_state=0)
nmf = NMF(n_components=100, random_state=0)
nmf.fit(X_train)
pca = PCA(n_components=100, random_state=0)
pca.fit(X_train)
kmeans = KMeans(n_clusters=100, random_state=0)
kmeans.fit(X_train)

X_reconstructed_pca = pca.inverse_transform(pca.transform(X_test))
X_reconstructed_kmeans = kmeans.cluster_centers_[kmeans.predict(X_test)]
X_reconstructed_nmf = np.dot(nmf.transform(X_test), nmf.components_)

Maybe we can change

X_reconstructed_nmf = np.dot(nmf.transform(X_test), nmf.components_)

to

X_reconstructed_nmf = nmf.inverse_transform(nmf.transform(X_test))

This will be more consistent with pca and I guess it's better to rely on scikit-learn API

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions