Skip to content

Instantly share code, notes, and snippets.

@amankharwal
Created February 18, 2021 08:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amankharwal/51130c2a302937cd03bf384e2996c01d to your computer and use it in GitHub Desktop.
Save amankharwal/51130c2a302937cd03bf384e2996c01d to your computer and use it in GitHub Desktop.
#PCA without Scikit-Learn
X_centered = X - X.mean(axis=0)
U, s, Vt = np.linalg.svd(X_centered)
c1 = Vt.T[:, 0]
c2 = Vt.T[:, 1]
m, n = X.shape
S = np.zeros(X_centered.shape)
S[:n, :n] = np.diag(s)
np.allclose(X_centered, U.dot(S).dot(Vt))
W2 = Vt.T[:, :2]
X2D = X_centered.dot(W2)
print(X2D)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment