X = digits.data y = digits.target n_samples, n_features = X.shape #---------------------------------------------------------------------- # Random 2D projection using a random unitary matrix print "Computing random projection" rng = np.random.RandomState(42) Q, _ = qr_economic(rng.normal(size=(n_features, 2))) X_projected = np.dot(Q.T, X.T).T #---------------------------------------------------------------------- # Projection on to the first 2 principal components print "Computing PCA projection" X_pca = decomposition.RandomizedPCA(n_components=2).fit_transform(X) #---------------------------------------------------------------------- # Projection on to the first 2 linear discriminant components print "Computing LDA projection" X2 = X.copy() X2.flat[::X.shape[1] + 1] += 0.01 # Make X invertible X_lda = lda.LDA(n_components=2).fit_transform(X2, y) #---------------------------------------------------------------------- # Locally linear embedding of the digits dataset print "Computing LLE embedding" X_lle, err = manifold.locally_linear_embedding(X, 30, 2, reg=1e-2) print "Done. Reconstruction error: %g" % err
## original shape of images: 50, 37 """ import numpy as np from scikits.learn import cross_val, datasets, decomposition, svm # .. # .. load data .. lfw_people = datasets.fetch_lfw_people(min_faces_per_person=70, resize=0.4) faces = np.reshape(lfw_people.data, (lfw_people.target.shape[0], -1)) train, test = iter(cross_val.StratifiedKFold(lfw_people.target, k=4)).next() X_train, X_test = faces[train], faces[test] y_train, y_test = lfw_people.target[train], lfw_people.target[test] # .. # .. dimension reduction .. pca = decomposition.RandomizedPCA(n_components=150, whiten=True) pca.fit(X_train) X_train_pca = pca.transform(X_train) X_test_pca = pca.transform(X_test) # .. # .. classification .. clf = svm.SVC(C=5., gamma=0.001) clf.fit(X_train_pca, y_train) print 'Score on unseen data: ' print clf.score(X_test_pca, y_test)