{ "metadata": { "name": "", "signature": "sha256:e50ec7f96a84e557c76ec88c82b835f42d35155214da84557d01b0ad035ecb91" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Sebastian Raschka \n", "last updated: 04/17/2014 \n", "\n", "- Link to the containing GitHub Repository: [https://github.com/rasbt/pattern_classification](https://github.com/rasbt/pattern_classification)\n", "- Link to this IPython Notebook on GitHub: [principal_component_analysis.ipynb](\"https://github.com/rasbt/pattern_classification/blob/master/dimensionality_reduction/projection/principal_component_analysis.ipynb\") " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "I am really looking forward to your comments and suggestions to improve and extend this tutorial! Just send me a quick note \n", "via Twitter: [@rasbt](https://twitter.com/rasbt) \n", "or Email: [bluewoodtree@gmail.com](mailto:bluewoodtree@gmail.com)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "#Stepping through a Principal Component Analysis\n", "# - using Python's numpy and matplotlib\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Sections\n", "- Introduction \n", "- Generating 3-dimensional sample data\n", "- The step by step approach\n", " - 1. Taking the whole dataset ignoring the class labels \n", " - 2. Compute the $d$-dimensional mean vector\n", " - 3. Computing the scatter matrix (alternatively, the covariance matrix)\n", " - 4. Computing eigenvectors and corresponding eigenvalues\n", " - 5. Ranking and choosing $k$ eigenvectors\n", " - 6. Transforming the samples onto the new subspace\n", "- Using the `PCA()` class from the `matplotlib.mlab` library\n", " -  Differences between the step by step approach and matplotlib.mlab.PCA()\n", "- Using the `PCA()` class from the sklearn.decomposition library to confirm our results " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main purposes of a principal component analysis are the analysis of data to identify patterns and finding patterns to reduce the dimensions of the dataset with minimal loss of information.\n", "\n", "Here, our desired outcome of the principal component analysis is to project a feature space (our dataset consisting of $n$ $d$-dimensional samples) onto a smaller subspace that represents our data \"well\". A possible application would be a pattern classification task, where we want to reduce the computational costs and the error of parameter estimation by reducing the number of dimensions of our feature space by extracting a subspace that describes our data \"best\".\n", "\n", "###Principal Component Analysis (PCA) Vs. Multiple Discriminant Analysis (MDA)\n", "Both Multiple Discriminant Analysis (MDA) and Principal Component Analysis (PCA) are linear transformation methods and closely related to each other. In PCA, we are interested to find the directions (components) that maximize the variance in our dataset, where in MDA, we are additionally interested to find the directions that maximize the separation (or discrimination) between different classes (for example, in pattern classification problems where our dataset consists of multiple classes. In contrast two PCA, which ignores the class labels). \n", "***In other words, via PCA, we are projecting the entire set of data (without class labels) onto a different subspace, and in MDA, we are trying to determine a suitable subspace to distinguish between patterns that belong to different classes. Or, roughly speaking in PCA we are trying to find the axes with maximum variances where the data is most spread (within a class, since PCA treats the whole data set as one class), and in MDA we are additionally maximizing the spread between classes. *** \n", "In typical pattern recognition problems, a PCA is often followed by an MDA.\n", "\n", "#### What is a \"good\" subspace?\n", "Let's assume that our goal is to reduce the dimensions of a $d$-dimensional dataset by projecting it onto a $(k)$-dimensional subspace (where $k\\;<\\;d$). \n", "So, how do we know what size we should choose for $k$, and how do we know if we have a feature space that represents our data \"well\"? \n", "Later, we will compute eigenvectors (the components) from our data set and collect them in a so-called scatter-matrix (or alternatively calculate them from the covariance matrix). Each of those eigenvectors is associated with an eigenvalue, which tell us about the \"length\" or \"magnitude\" of the eigenvectors. If we observe that all the eigenvalues are of very similar magnitude, this is a good indicator that our data is already in a \"good\" subspace. Or if some of the eigenvalues are much much higher than others, we might be interested in keeping only those eigenvectors with the much larger eigenvalues, since they contain more information about our data distribution. Vice versa, eigenvalues that are close to 0 are less informative and we might consider in dropping those when we construct the new feature subspace." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Summarizing the PCA approach\n", "\n", "Listed below are the 6 general steps for performing a principal component analysis, which we will investigate in the following sections.\n", "\n", "1. Take the whole dataset consisting of $d$-dimensional samples ignoring the class labels \n", "2. Compute the $d$-dimensional mean vector (i.e., the means for every dimension of the whole dataset)\n", "3. Compute the scatter matrix (alternatively, the covariance matrix) of the whole data set\n", "4. Compute eigenvectors ($\\pmb e_1, \\; \\pmb e_2, \\; ..., \\; \\pmb e_d $) and corresponding eigenvalues ($\\pmb \\lambda_1, \\; \\pmb \\lambda_2, \\; ..., \\; \\pmb \\lambda_d$)\n", "5. Sort the eigenvectors by decreasing eigenvalues and choose $k$ eigenvectors with the largest eigenvalues to form a $d \\times k $ dimensional matrix $\\pmb W\\;$(where every column represents an eigenvector)\n", "6. Use this $d \\times k $ eigenvector matrix to transform the samples onto the new subspace. This can be summarized by the mathematical equation: $\\pmb y = \\pmb W^T \\times \\pmb x$ (where $\\pmb x$ is a $d \\times 1$-dimensional vector representing one sample, and $\\pmb y$ is the transformed $k \\times 1$-dimensional sample in the new subspace.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Generating some 3-dimensional sample data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the following example, we will generate 40 3-dimensional samples randomly drawn from a multivariate Gaussian distribution. \n", "Here, we will assume that the samples stem from two different classes, where one half (i.e., 20) samples of our data set are labeled $\\omega_1$ (class 1) and the other half $\\omega_2$ (class 2). \n", "\n", "$\\pmb{\\mu_1} = $\n", "$\\begin{bmatrix}0\\\\0\\\\0\\end{bmatrix}$ \n", "$\\quad\\pmb{\\mu_2} = $ \n", "$\\begin{bmatrix}1\\\\1\\\\1\\end{bmatrix}\\quad$(sample means)\n", "\n", "$\\pmb{\\Sigma_1} = $\n", "$\\begin{bmatrix}1\\quad 0\\quad 0\\\\0\\quad 1\\quad0\\\\0\\quad0\\quad1\\end{bmatrix}$\n", "$\\quad\\pmb{\\Sigma_2} = $\n", "$\\begin{bmatrix}1\\quad 0\\quad 0\\\\0\\quad 1\\quad0\\\\0\\quad0\\quad1\\end{bmatrix}\\quad$ (covariance matrices)\n", "\n", "###Why are we chosing a 3-dimensional sample?\n", "The problem of multi-dimensional data is its visualization, which would make it quite tough to follow our example principal component analysis (at least visually). We could also choose a 2-dimensional sample data set for the following examples, but since the goal of the PCA in an \"Diminsionality Reduction\" application is to drop at least one of the dimensions, I find it more intuitive and visually appealing to start with a 3-dimensional dataset that we reduce to an 2-dimensional dataset by dropping 1 dimension.\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "\n", "np.random.seed(234234782384239784) # random seed for consistency\n", "\n", "# A reader pointed out that Python 2.7 would raise a\n", "# \"ValueError: object of too small depth for desired array\".\n", "# This can be avoided by choosing a smaller random seed, e.g. 1\n", "# or by completely omitting this line, since I just used the random seed for\n", "# consistency.\n", "\n", "mu_vec1 = np.array([0,0,0])\n", "cov_mat1 = np.array([[1,0,0],[0,1,0],[0,0,1]])\n", "class1_sample = np.random.multivariate_normal(mu_vec1, cov_mat1, 20).T\n", "assert class1_sample.shape == (3,20), \"The matrix has not the dimensions 3x20\"\n", "\n", "mu_vec2 = np.array([1,1,1])\n", "cov_mat2 = np.array([[1,0,0],[0,1,0],[0,0,1]])\n", "class2_sample = np.random.multivariate_normal(mu_vec2, cov_mat2, 20).T\n", "assert class1_sample.shape == (3,20), \"The matrix has not the dimensions 3x20\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the code above, we created two $3\\times20$ datasets - one dataset for each class $\\omega_1$ and $\\omega_2$ - \n", "where each column can be pictured as a 3-dimensional vector $\\pmb x = \\begin{pmatrix} x_1 \\\\ x_2 \\\\ x_3 \\end{pmatrix}$ so that our dataset will have the form \n", "$\\pmb X = \\begin{pmatrix} x_{1_1}\\; x_{1_2} \\; ... \\; x_{1_{20}}\\\\ x_{2_1} \\; x_{2_2} \\; ... \\; x_{2_{20}}\\\\ x_{3_1} \\; x_{3_2} \\; ... \\; x_{3_{20}}\\end{pmatrix}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just to get a rough idea how the samples of our two classes $\\omega_1$ and $\\omega_2$ are distributed, let us plot them in a 3D scatter plot." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "from matplotlib import pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from mpl_toolkits.mplot3d import proj3d\n", "\n", "fig = plt.figure(figsize=(8,8))\n", "ax = fig.add_subplot(111, projection='3d')\n", "plt.rcParams['legend.fontsize'] = 10 \n", "ax.plot(class1_sample[0,:], class1_sample[1,:], class1_sample[2,:], 'o', markersize=8, color='blue', alpha=0.5, label='class1')\n", "ax.plot(class2_sample[0,:], class2_sample[1,:], class2_sample[2,:], '^', markersize=8, alpha=0.5, color='red', label='class2')\n", "\n", "plt.title('Samples for class 1 and class 2')\n", "ax.legend(loc='upper right')\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nnfjrX/+KTz75RHrOT3/6UwwYMEAxLP3kk09i/vz5uPDCC+Hz+dDa2oopU6b0e15rayvOPfdchMNh\nNDU14aabbiqZN7XrDwaD6OjowJ49exAMBjFz5kzF+zLKnDlzMGnSJADAUUcdhYsuuqjf50ih+MmT\nJ2PKlCl47733APS1W7r55psxYMAAjBgxAjfccIOql/GXv/wFhx56KH7wgx8gGAyiqakJxx13nOJz\nL7/8csRiMQQCAdxyyy1477330NvbK83D5s2b0dPTg5aWFkybNk36+2effYaOjg74fD6ccMIJZe+9\np6cHl156qdS8uJERRRE7li3DacOGYceyZbq9RbOvc7K917BhwzB16lQAQFNTEyZMmIBPP/1U71Qo\nwg0mpyxHHHEEHn30UXR2duL999/Hp59+ihtvvBEAsHfvXlx00UUYMWIEWlpacOmll2L//v0lrx86\ndKj0/yORSMm/w+EwEolEyfPZDMtRo0Ypfsk//vhjPPPMMxg4cKD039q1a/H5558jGo3ij3/8I37z\nm9/g0EMPxZlnnokPP/xQ171+9tlnGD16tPTvWCyGQYMGlYRLtTJAd+/ejcMOO6zsOKlUCosXL0Z7\neztaWlowZ84cdHd3QxRFxGIx1ev/1a9+BVEUcdxxx+HII4+0LPVFvPXWW5g3bx6GDBmCAQMG4OGH\nH+73OQ4bNkz6/9FoVPrcPv30036fmRqdnZ265qdQKOAnP/kJxo0bh5aWFowZMwYejwf79u0DAPz3\nf/83li9fjvb2dsydO1dK2PrhD3+IcePG4dRTT8XYsWPxy1/+UnOcdDqNs846CzNnzsSPf/zjstdV\n73z0wQcY98UX8Hg8GPfFF/iICYPb/To323t1dHRgw4YNmD59uq77UYMbTI4hvvGNb2DRokV4//33\nAQA33XQTfD4f3n//fXR3d+MPf/gDikXtDgbldp+sN/fJJ5+gra2t33NGjRqFSy+9FAcOHJD+6+3t\nxY9+9CMAwKmnnoqXXnoJn3/+OY444ghcddVV/a4hl8shlUqhWCwin89DFEUceuih6OjokJ6XTCax\nf//+kmvQSqAZOXIkPvroI9XH6bV33303tm3bhvXr16O7uxuvvfYaRFGU5kbt+ocOHYpHHnkEe/bs\nwcMPP4xrrrkGO3fuVB1PL9/5znewcOFC7N69GwcPHsT3v//9sp8jMXz48H6fmRqjRo3Sdb1PPvkk\n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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#1. Taking the whole dataset ignoring the class labels\n", "\n", "Because we don't need class labels for the PCA analysis, let us merge the samples for our 2 classes into one $3\\times40$-dimensional array." ] }, { "cell_type": "code", "collapsed": false, "input": [ "all_samples = np.concatenate((class1_sample, class2_sample), axis=1)\n", "assert all_samples.shape == (3,40), \"The matrix has not the dimensions 3x40\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#2. Computing the d-dimensional mean vector" ] }, { "cell_type": "code", "collapsed": false, "input": [ "mean_x = np.mean(all_samples[0,:])\n", "mean_y = np.mean(all_samples[1,:])\n", "mean_z = np.mean(all_samples[2,:])\n", "\n", "mean_vector = np.array([[mean_x],[mean_y],[mean_z]])\n", "\n", "print('Mean Vector:\\n', mean_vector)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mean Vector:\n", " [[ 0.50576644]\n", " [ 0.30186591]\n", " [ 0.76459177]]\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# 3. a) Computing the Scatter Matrix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The scatter matrix is computed by the following equation: \n", "$S = \\sum\\limits_{k=1}^n (\\pmb x_k - \\pmb m)\\;(\\pmb x_k - \\pmb m)^T$ \n", "where $\\pmb m$ is the mean vector \n", "$\\pmb m = \\frac{1}{n} \\sum\\limits_{k=1}^n \\; \\pmb x_k$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "scatter_matrix = np.zeros((3,3))\n", "for i in range(all_samples.shape[1]):\n", " scatter_matrix += (all_samples[:,i].reshape(3,1) - mean_vector).dot((all_samples[:,i].reshape(3,1) - mean_vector).T)\n", "print('Scatter Matrix:\\n', scatter_matrix)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Scatter Matrix:\n", " [[ 48.91593255 7.11744916 7.20810281]\n", " [ 7.11744916 37.92902984 2.7370493 ]\n", " [ 7.20810281 2.7370493 35.6363759 ]]\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#3. b) Computing the Covariance Matrix (alternatively to the scatter matrix)\n", "Alternatively, instead of calculating the scatter matrix, we could also calculate the covariance matrix using the in-built `numpy.cov()` function. The equations for the covariance matrix and scatter matrix are very similar, the only difference is, that we use the scaling factor $\\frac{1}{N-1}$ (here: $\\frac{1}{40-1} = \\frac{1}{39}$) for the covariance matrix. Thus, their ***eigenspaces*** will be identical (identical eigenvectors, only the eigenvalues are scaled differently by a constant factor).\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\Sigma_i = \\Bigg[ \n", "\\begin{array}{cc}\n", "\\sigma_{11}^2 & \\sigma_{12}^2 & \\sigma_{13}^2\\\\\n", "\\sigma_{21}^2 & \\sigma_{22}^2 & \\sigma_{23}^2\\\\\n", "\\sigma_{31}^2 & \\sigma_{32}^2 & \\sigma_{33}^2\\\\\n", "\\end{array} \\Bigg]$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "cov_mat = np.cov([all_samples[0,:],all_samples[1,:],all_samples[2,:]])\n", "print('Covariance Matrix:\\n', cov_mat)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Covariance Matrix:\n", " [[ 1.25425468 0.1824987 0.18482315]\n", " [ 0.1824987 0.97253923 0.07018075]\n", " [ 0.18482315 0.07018075 0.91375323]]\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#4. Computing eigenvectors and corresponding eigenvalues\n", "\n", "To show that the eigenvectors are indeed identical whether we derived them from the scatter or the covariance matrix, let us put an `assert` statement into the code. Also, we will see that the eigenvalues were indeed scaled by the factor 39 when we derived it from the scatter matrix." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# eigenvectors and eigenvalues for the from the scatter matrix\n", "eig_val_sc, eig_vec_sc = np.linalg.eig(scatter_matrix)\n", "\n", "# eigenvectors and eigenvalues for the from the covariance matrix\n", "eig_val_cov, eig_vec_cov = np.linalg.eig(cov_mat)\n", "\n", "for i in range(len(eig_val_sc)):\n", " eigvec_sc = eig_vec_sc[:,i].reshape(1,3).T\n", " eigvec_cov = eig_vec_cov[:,i].reshape(1,3).T\n", " assert eigvec_sc.all() == eigvec_cov.all(), 'Eigenvectors are not identical'\n", " \n", " print('Eigenvector {}: \\n{}'.format(i+1, eigvec_sc))\n", " print('Eigenvalue {} from scatter matrix: {}'.format(i+1, eig_val_sc[i]))\n", " print('Eigenvalue {} from covariance matrix: {}'.format(i+1, eig_val_cov[i]))\n", " print('Scaling factor: ', eig_val_sc[i]/eig_val_cov[i])\n", " print(40 * '-')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Eigenvector 1: \n", "[[-0.84190486]\n", " [-0.39978877]\n", " [-0.36244329]]\n", "Eigenvalue 1 from scatter matrix: 55.398855957302445\n", "Eigenvalue 1 from covariance matrix: 1.4204834860846791\n", "Scaling factor: 39.0\n", "----------------------------------------\n", "Eigenvector 2: \n", "[[-0.44565232]\n", " [ 0.13637858]\n", " [ 0.88475697]]\n", "Eigenvalue 2 from scatter matrix: 32.42754801292286\n", "Eigenvalue 2 from covariance matrix: 0.8314755900749456\n", "Scaling factor: 39.0\n", "----------------------------------------\n", "Eigenvector 3: \n", "[[ 0.30428639]\n", " [-0.90640489]\n", " [ 0.29298458]]\n", "Eigenvalue 3 from scatter matrix: 34.65493432806495\n", "Eigenvalue 3 from covariance matrix: 0.8885880596939733\n", "Scaling factor: 39.0\n", "----------------------------------------\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Checking the eigenvector-eigenvalue calculation\n", "\n", "Let us quickly check that the eigenvector-eigenvalue calculation is correct and satisfy the equation\n", "\n", "$\\pmb\\Sigma\\pmb{v} = \\lambda\\pmb{v}$ \n", "\n", "
\n", "where \n", "$\\pmb\\Sigma = Covariance \\; matrix\\\\\n", "\\pmb{v} = \\; Eigenvector\\\\\n", "\\lambda = \\; Eigenvalue$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(len(eig_val_sc)):\n", " eigv = eig_vec_sc[:,i].reshape(1,3).T\n", " np.testing.assert_array_almost_equal(scatter_matrix.dot(eigv), eig_val_sc[i] * eigv, \n", " decimal=6, err_msg='', verbose=True)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualizing the eigenvectors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And before we move on to the next step, just to satisfy our own curiosity, we plot the eigenvectors centered at the sample mean." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "\n", "from matplotlib import pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from mpl_toolkits.mplot3d import proj3d\n", "from matplotlib.patches import FancyArrowPatch\n", "\n", "\n", "class Arrow3D(FancyArrowPatch):\n", " def __init__(self, xs, ys, zs, *args, **kwargs):\n", " FancyArrowPatch.__init__(self, (0,0), (0,0), *args, **kwargs)\n", " self._verts3d = xs, ys, zs\n", "\n", " def draw(self, renderer):\n", " xs3d, ys3d, zs3d = self._verts3d\n", " xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)\n", " self.set_positions((xs[0],ys[0]),(xs[1],ys[1]))\n", " FancyArrowPatch.draw(self, renderer)\n", "\n", "fig = plt.figure(figsize=(7,7))\n", "ax = fig.add_subplot(111, projection='3d')\n", "\n", "ax.plot(all_samples[0,:], all_samples[1,:], all_samples[2,:], 'o', markersize=8, color='green', alpha=0.2)\n", "ax.plot([mean_x], [mean_y], [mean_z], 'o', markersize=10, color='red', alpha=0.5)\n", "for v in eig_vec_sc.T:\n", " a = Arrow3D([mean_x, v[0]], [mean_y, v[1]], [mean_z, v[2]], mutation_scale=20, lw=3, arrowstyle=\"-|>\", color=\"r\")\n", " ax.add_artist(a)\n", "ax.set_xlabel('x_values')\n", "ax.set_ylabel('y_values')\n", "ax.set_zlabel('z_values')\n", "\n", "plt.title('Eigenvectors')\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#5.1. Sorting the eigenvectors by decreasing eigenvalues\n", "We started with the goal to reduce the dimensionality of our feature space, i.e., projecting the feature space via PCA onto a smaller subspace, where the eigenvectors will form the axes of this new feature subspace. However, the eigenvectors only define the directions of the new axis, since they have all the same unit length 1, which we can confirm by the following code:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for ev in eig_vec_sc:\n", " numpy.testing.assert_array_almost_equal(1.0, np.linalg.norm(ev))\n", " # instead of 'assert' because of rounding errors" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, in order to decide which eigenvector(s) we want to drop for our lower-dimensional subspace, we have to take a look at the corresponding eigenvalues of the eigenvectors. Roughly speaking, the eigenvectors with the lowest eigenvalues bear the least information about the distribution of the data, and those are the ones we want to drop. \n", "The common approach is to rank the eigenvectors from highest to lowest corresponding eigenvalue and choose the top $k$ eigenvectors." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make a list of (eigenvalue, eigenvector) tuples\n", "eig_pairs = [(np.abs(eig_val_sc[i]), eig_vec_sc[:,i]) for i in range(len(eig_val_sc))]\n", "\n", "# Sort the (eigenvalue, eigenvector) tuples from high to low\n", "eig_pairs.sort()\n", "eig_pairs.reverse()\n", "\n", "# Visually confirm that the list is correctly sorted by decreasing eigenvalues\n", "for i in eig_pairs:\n", " print(i[0])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "55.3988559573\n", "34.6549343281\n", "32.4275480129\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#5.2. Choosing *k* eigenvectors with the largest eigenvalues\n", "For our simple example, where we are reducing a 3-dimensional feature space to a 2-dimensional feature subspace, we are combining the two eigenvectors with the highest eigenvalues to construct our $d \\times k$-dimensional eigenvector matrix $\\pmb W$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "matrix_w = np.hstack((eig_pairs[0][1].reshape(3,1), eig_pairs[1][1].reshape(3,1)))\n", "print('Matrix W:\\n', matrix_w)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Matrix W:\n", " [[-0.84190486 0.30428639]\n", " [-0.39978877 -0.90640489]\n", " [-0.36244329 0.29298458]]\n" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#6. Transforming the samples onto the new subspace\n", "In the last step, we use the $2 \\times 3$-dimensional matrix $\\pmb W$ that we just computed to transform our samples onto the new subspace via the equation $\\pmb y = \\pmb W^T \\times \\pmb x$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "transformed = matrix_w.T.dot(all_samples)\n", "assert transformed.shape == (2,40), \"The matrix is not 2x40 dimensional.\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(transformed[0,0:20], transformed[1,0:20], 'o', markersize=7, color='blue', alpha=0.5, label='class1')\n", "plt.plot(transformed[0,20:40], transformed[1,20:40], '^', markersize=7, color='red', alpha=0.5, label='class2')\n", "plt.xlim([-4,4])\n", "plt.ylim([-4,4])\n", "plt.xlabel('x_values')\n", "plt.ylabel('y_values')\n", "plt.legend()\n", "plt.title('Transformed samples with class labels')\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "#Using the PCA() class from the matplotlib.mlab library\n", "\n", "Now, that we have seen how a principal component analysis works, we can use the in-built `PCA()` class from the `matplotlib` library for our convenience in future applications.\n", "Unfortunately, the original documentation ([http://matplotlib.sourceforge.net/api/mlab_api.html#matplotlib.mlab.PCA](http://matplotlib.sourceforge.net/api/mlab_api.html#matplotlib.mlab.PCA)) is very sparse; \n", "a better documentation can be found here: [https://www.clear.rice.edu/comp130/12spring/pca/pca_docs.shtml](https://www.clear.rice.edu/comp130/12spring/pca/pca_docs.shtml). \n", "\n", "And the original code implementation of the `PCA()` class can be viewed at: \n", "[https://sourcegraph.com/github.com/matplotlib/matplotlib/symbols/python/lib/matplotlib/mlab/PCA](https://sourcegraph.com/github.com/matplotlib/matplotlib/symbols/python/lib/matplotlib/mlab/PCA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Class attributes of `PCA()`\n", "\n", " Attrs:\n", "\n", " a : a centered unit sigma version of input a\n", "\n", " numrows, numcols: the dimensions of a\n", "\n", " mu : a numdims array of means of a\n", "\n", " sigma : a numdims array of atandard deviation of a\n", "\n", " fracs : the proportion of variance of each of the principal components\n", "\n", " Wt : the weight vector for projecting a numdims point or array into PCA space\n", "\n", " Y : a projected into PCA space" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also, it has to be mentioned that the `PCA()` class expects a `np.array()` as input where: `'we assume data in a is organized with numrows>numcols')`, so that we have to transpose our dataset. \n", "\n", "`matplotlib.mlab.PCA()` keeps all $d$-dimensions of the input dataset after the transformation (stored in the class attribute `PCA.Y`), and assuming that they are already ordered (\"Since the PCA analysis orders the PC axes by descending importance in terms of describing the clustering, we see that fracs is a list of monotonically decreasing values.\", [https://www.clear.rice.edu/comp130/12spring/pca/pca_docs.shtml](https://www.clear.rice.edu/comp130/12spring/pca/pca_docs.shtml)) we just need to plot the first 2 columns if we are interested in projecting our 3-dimensional input dataset onto a 2-dimensional subspace." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from matplotlib.mlab import PCA as mlabPCA\n", " \n", "mlab_pca = mlabPCA(all_samples.T) \n", "\n", "print('PC axes in terms of the measurement axes scaled by the standard deviations:\\n', mlab_pca.Wt)\n", "\n", "plt.plot(mlab_pca.Y[0:20,0],mlab_pca.Y[0:20,1], 'o', markersize=7, color='blue', alpha=0.5, label='class1')\n", "plt.plot(mlab_pca.Y[20:40,0], mlab_pca.Y[20:40,1], '^', markersize=7, color='red', alpha=0.5, label='class2')\n", "\n", "plt.xlabel('x_values')\n", "plt.ylabel('y_values')\n", "plt.xlim([-4,4])\n", "plt.ylim([-4,4])\n", "plt.legend()\n", "plt.title('Transformed samples with class labels from matplotlib.mlab.PCA()')\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "PC axes in terms of the measurement axes scaled by the standard deviations:\n", " [[ 0.65043619 0.53023618 0.54385876]\n", " [-0.01692055 0.72595458 -0.68753447]\n", " [ 0.75937241 -0.43799491 -0.48115902]]\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Differences between the step by step approach and matplotlib.mlab.PCA()\n", "\n", "When we plot the transformed dataset onto the new 2-dimensional subspace, we observe that the scatter plots from our step by step approach and the `matplotlib.mlab.PCA()` class do not look identical. This is due to the fact that `matplotlib.mlab.PCA()` class ***scales the variables to unit variance*** prior to calculating the covariance matrices. This will/could eventually lead to different variances along the axes and affect the contribution of the variable to principal components. \n", "\n", "One example where a scaling would make sense would be if one variable was measured in the unit **inches** where the other variable was measured in **cm**. \n", "However, for our hypothetical example, we assume that both variables have the same (arbitrary) unit, so that we skipped the step of scaling the input data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Using the PCA() class from the sklearn.decomposition library to confirm our results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to make sure that we have not made a mistake in our step by step approach, we will use another library that doesn't rescale the input data by default. \n", "Here, we will use the PCA class from the `scikit-learn` machine-learning library. The documentation can be found here: \n", "[http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html](http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html). \n", "\n", "For our convenience, we can directly specify to how many components we want to reduce our input dataset via the `n_components` parameter. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " n_components : int, None or string\n", " \n", " Number of components to keep. if n_components is not set all components are kept:\n", " n_components == min(n_samples, n_features)\n", " if n_components == \u2018mle\u2019, Minka\u2019s MLE is used to guess the dimension if 0 < n_components < 1, \n", " select the number of components such that the amount of variance that needs to be explained \n", " is greater than the percentage specified by n_components" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we just need to use the `.fit_transform()` in order to perform the dimensionality reduction." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.decomposition import PCA as sklearnPCA\n", "\n", "sklearn_pca = sklearnPCA(n_components=2)\n", "sklearn_transf = sklearn_pca.fit_transform(all_samples.T)\n", "\n", "plt.plot(sklearn_transf[0:20,0],sklearn_transf[0:20,1], 'o', markersize=7, color='blue', alpha=0.5, label='class1')\n", "plt.plot(sklearn_transf[20:40,0], sklearn_transf[20:40,1], '^', markersize=7, color='red', alpha=0.5, label='class2')\n", "\n", "plt.xlabel('x_values')\n", "plt.ylabel('y_values')\n", "plt.xlim([-4,4])\n", "plt.ylim([-4,4])\n", "plt.legend()\n", "plt.title('Transformed samples with class labels from matplotlib.mlab.PCA()')\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nsYcPHzKJRML09fWZQqFodL7+/vtv5urqyu7cucMYYywnJ4dlZWUxxhg7c+YM+9///scUCgXLzs5m\nXl5e7KOPPuLW1dPTY+PGjWPFxcXs8uXLzNjYmIWGhrIbN26woqIi5u3tzbZu3VrvmN944w0ml8tZ\nSkoK69y5M7t69Sp3/t5++23GGGNnz55l9vb2LDU1lVVXV7OtW7cyNzc3JpfLm4y3oe7du7OzZ88y\nxhjr3bs3c3d3Z+np6dxr58+fZ4wxJpFI2DfffMMYYyw+Pp4NGTKk3nZeeOEFZmNjw/766y9WVVXF\npk+fzqZOnap0n9nZ2czc3Jx9//33rKqqij148IDbT91jbOpzKJPJmIWFBXdu7t69yy5fvswYY2zq\n1Kls9erVjDHGKioq2PHjx5XGcePGDaanp8e95/v372fXr19njDGWkpLCOnXqxJ0bVe9NRkYGY4yx\nhQsXsrFjx7LCwkJWXFzMIiMj2ZIlS7h1XVxcGGNNf5Yaio2NZdHR0dz0li1bmKGhIfvkk0+YQqFg\nZWVlLDo6mo0bN47JZDKWnZ3Nevfuzb1PtcvHx8ez6upq9vbbbzNnZ2f26quvMrlczpKSkpi5uTkr\nKSlRuv+QkBDm6enJrl+/zn1WPTw82JEjR7jv38yZM7nlt2/fzh4+fMgUCgVbv349c3R0ZBUVFUqP\npXb7zs7O7PLly6ykpIRNmDCBPf/880rfm6FDh7J//etfrKKigp0/f57Z2dmxo0ePqtx23c/rli1b\n6n1e9fT02LBhw1hhYSG7efMm6927N/v666+VnoMXXniB2drasrNnz7Ly8nI2bNgw1qNHD7Zt2zbu\nnIaGhnLL1y1b1Skb1I2j7veiuLiYRUVFsaeffpoxxpiDgwOLj49Xul6t7OxsZmBgwHJzc9mXX37J\nfH19671uZ2fHTp8+3Wg9CwsLdvHiRZXbbVPiMTY25j4gypw7d45ZW1tz0xKJhMXFxXHTn332GRs5\nciRjjLFvv/2WBQcHswsXLjTaTt2Txxhj7u7u7Pfff+emDx48yNzc3FTGtXz5chYREcFN//rrr6xL\nly6surqaMcbY48ePmZ6eHisqKmJ3795lJiYmrKysjFt+x44d3IckNDSUS0KMMZaUlFTvg17XtWvX\nmL29PTt8+DCTy+UqzxNjjG3YsIE999xz3LSenh47ceIENx0YGMjef/99bvqNN95gCxcu5I7Z0NCQ\n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\n", "text": [ "" ] } ], "prompt_number": 29 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above seems to be the exact mirror image of the plot from out step by step approach. This is due to the fact that the signs of the eigenvectors can be either positive or negative, since the eigenvectors are scaled to the unit length 1, both we can simply multiply the transformed data by $\\times(-1)$ to revert the mirror image." ] }, { "cell_type": "code", "collapsed": false, "input": [ "sklearn_transf = sklearn_transf * (-1)\n", "\n", "# sklearn.decomposition.PCA\n", "plt.plot(sklearn_transf[0:20,0],sklearn_transf[0:20,1], 'o', markersize=7, color='blue', alpha=0.5, label='class1')\n", "plt.plot(sklearn_transf[20:40,0], sklearn_transf[20:40,1], '^', markersize=7, color='red', alpha=0.5, label='class2')\n", "plt.xlabel('x_values')\n", "plt.ylabel('y_values')\n", "plt.xlim([-4,4])\n", "plt.ylim([-4,4])\n", "plt.legend()\n", "plt.title('Transformed samples via sklearn.decomposition.PCA')\n", "plt.show()\n", "\n", "# step by step PCA\n", "plt.plot(transformed[0,0:20], transformed[1,0:20], 'o', markersize=7, color='blue', alpha=0.5, label='class1')\n", "plt.plot(transformed[0,20:40], transformed[1,20:40], '^', markersize=7, color='red', alpha=0.5, label='class2')\n", "plt.xlim([-4,4])\n", "plt.ylim([-4,4])\n", "plt.xlabel('x_values')\n", "plt.ylabel('y_values')\n", "plt.legend()\n", "plt.title('Transformed samples step by step approach')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nEan/B8fN7sCf/x4sAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking at the 2 plots above, the distributions along the component axes look identical, only the center of the data is slightly different." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }