In [10]:
from sklearn import datasets
from sklearn.decomposition import RandomizedPCA
from sklearn.decomposition import PCA
from sklearn import svm

import pylab as pl
import numpy as np

In [2]:
iris = datasets.load_iris()

In [4]:
X, y = iris.data, iris.target

In [6]:
X.shape, y.shape


Out[6]:
((150, 4), (150,))

In [7]:
iris.target_names


Out[7]:
array(['setosa', 'versicolor', 'virginica'], 
      dtype='|S10')

In [8]:
X_rand_pca = RandomizedPCA(n_components=2).fit_transform(X)

In [9]:
X_rand_pca.shape


Out[9]:
(150, 2)

In [12]:
from itertools import cycle
color = ['b', 'g', 'r']
for i,c in zip(np.unique(y), cycle(color)):
    pl.scatter(X_rand_pca[y==i,0], X_rand_pca[y==i, 1], c=c, label=i, alpha=.8)



In [13]:
from sklearn.decomposition import PCA
iris_pca_basic = PCA(n_components=2).fit_transform(iris.data)

for i, c in zip(np.unique(iris.target), cycle(color)):
    pl.scatter(iris_pca_basic[iris.target==i,0], iris_pca_basic[iris.target==i,1],
               c=c, alpha=.8)



In [30]:
from sklearn.decomposition import ProbabilisticPCA, KernelPCA
iris_pca_probalistic = ProbabilisticPCA(n_components=2).fit_transform(iris.data)

X_p= iris_pca_probalistic
for i, c in zip(np.unique(iris.target), cycle(color)):
    pl.scatter(X_p[iris.target==i,0], X_p[iris.target==i,1], c=c, alpha=.7, label=iris.target_names[i])
    pl.legend(loc='upper right')



In [29]:
from sklearn.decomposition import ProbabilisticPCA, KernelPCA
iris_pca_probalistic = KernelPCA(n_components=2).fit_transform(iris.data)

X_p= iris_pca_probalistic
for i, c, name in zip(np.unique(iris.target), cycle(color), np.unique(iris.target_names)):
    pl.scatter(X_p[iris.target==i,0], X_p[iris.target==i,1], c=c, alpha=.7, label=name)
    pl.legend(loc='lower right')



In [32]:
clf = svm.SVC(kernel='rbf').fit(X_p, iris.target)

In [33]:
clf


Out[33]:
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

In [34]:
from sklearn.cross_validation import cross_val_score
cross_val_score(clf, X_p, iris.target, cv=10)


Out[34]:
array([ 1.        ,  1.        ,  0.8       ,  1.        ,  0.86666667,
        1.        ,  1.        ,  0.93333333,  0.93333333,  1.        ])

In [35]:
cross_val_score(svm.SVC(kernel='rbf'), iris.data, iris.target, cv=10)


Out[35]:
array([ 1.        ,  1.        ,  0.86666667,  1.        ,  0.93333333,
        1.        ,  1.        ,  1.        ,  1.        ,  1.        ])

In [36]:
iris.data.shape, X_p.shape


Out[36]:
((150, 4), (150, 2))

In [ ]: