{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Principle Component Analysis (PCA) for Data Visualization

\n", "\n", "Almost all of the contents on this notebook were taken from: https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd \n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.decomposition import PCA\n", "from sklearn.preprocessing import StandardScaler\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Iris Dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "url = \"https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# loading dataset into Pandas DataFrame\n", "df = pd.read_csv(url\n", " , names=['sepal length','sepal width','petal length','petal width','target'])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal lengthsepal widthpetal lengthpetal widthtarget
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", "
" ], "text/plain": [ " sepal length sepal width petal length petal width target\n", "0 5.1 3.5 1.4 0.2 Iris-setosa\n", "1 4.9 3.0 1.4 0.2 Iris-setosa\n", "2 4.7 3.2 1.3 0.2 Iris-setosa\n", "3 4.6 3.1 1.5 0.2 Iris-setosa\n", "4 5.0 3.6 1.4 0.2 Iris-setosa" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Standardize the Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since PCA yields a feature subspace that maximizes the variance along the axes, it makes sense to standardize the data, especially, if it was measured on different scales. Although, all features in the Iris dataset were measured in centimeters, let us continue with the transformation of the data onto unit scale (mean=0 and variance=1), which is a requirement for the optimal performance of many machine learning algorithms." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "features = ['sepal length', 'sepal width', 'petal length', 'petal width']\n", "x = df.loc[:, features].values" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 5.1, 3.5, 1.4, 0.2],\n", " [ 4.9, 3. , 1.4, 0.2],\n", " [ 4.7, 3.2, 1.3, 0.2],\n", " [ 4.6, 3.1, 1.5, 0.2],\n", " [ 5. , 3.6, 1.4, 0.2],\n", " [ 5.4, 3.9, 1.7, 0.4],\n", " [ 4.6, 3.4, 1.4, 0.3],\n", " [ 5. , 3.4, 1.5, 0.2],\n", " [ 4.4, 2.9, 1.4, 0.2],\n", " [ 4.9, 3.1, 1.5, 0.1],\n", " [ 5.4, 3.7, 1.5, 0.2],\n", " [ 4.8, 3.4, 1.6, 0.2],\n", " [ 4.8, 3. , 1.4, 0.1],\n", " [ 4.3, 3. , 1.1, 0.1],\n", " [ 5.8, 4. , 1.2, 0.2],\n", " [ 5.7, 4.4, 1.5, 0.4],\n", " [ 5.4, 3.9, 1.3, 0.4],\n", " [ 5.1, 3.5, 1.4, 0.3],\n", " [ 5.7, 3.8, 1.7, 0.3],\n", " [ 5.1, 3.8, 1.5, 0.3],\n", " [ 5.4, 3.4, 1.7, 0.2],\n", " [ 5.1, 3.7, 1.5, 0.4],\n", " [ 4.6, 3.6, 1. , 0.2],\n", " [ 5.1, 3.3, 1.7, 0.5],\n", " [ 4.8, 3.4, 1.9, 0.2],\n", " [ 5. , 3. , 1.6, 0.2],\n", " [ 5. , 3.4, 1.6, 0.4],\n", " [ 5.2, 3.5, 1.5, 0.2],\n", " [ 5.2, 3.4, 1.4, 0.2],\n", " [ 4.7, 3.2, 1.6, 0.2],\n", " [ 4.8, 3.1, 1.6, 0.2],\n", " [ 5.4, 3.4, 1.5, 0.4],\n", " [ 5.2, 4.1, 1.5, 0.1],\n", " [ 5.5, 4.2, 1.4, 0.2],\n", " [ 4.9, 3.1, 1.5, 0.1],\n", " [ 5. , 3.2, 1.2, 0.2],\n", " [ 5.5, 3.5, 1.3, 0.2],\n", " [ 4.9, 3.1, 1.5, 0.1],\n", " [ 4.4, 3. , 1.3, 0.2],\n", " [ 5.1, 3.4, 1.5, 0.2],\n", " [ 5. , 3.5, 1.3, 0.3],\n", " [ 4.5, 2.3, 1.3, 0.3],\n", " [ 4.4, 3.2, 1.3, 0.2],\n", " [ 5. , 3.5, 1.6, 0.6],\n", " [ 5.1, 3.8, 1.9, 0.4],\n", " [ 4.8, 3. , 1.4, 0.3],\n", " [ 5.1, 3.8, 1.6, 0.2],\n", " [ 4.6, 3.2, 1.4, 0.2],\n", " [ 5.3, 3.7, 1.5, 0.2],\n", " [ 5. , 3.3, 1.4, 0.2],\n", " [ 7. , 3.2, 4.7, 1.4],\n", " [ 6.4, 3.2, 4.5, 1.5],\n", " [ 6.9, 3.1, 4.9, 1.5],\n", " [ 5.5, 2.3, 4. , 1.3],\n", " [ 6.5, 2.8, 4.6, 1.5],\n", " [ 5.7, 2.8, 4.5, 1.3],\n", " [ 6.3, 3.3, 4.7, 1.6],\n", " [ 4.9, 2.4, 3.3, 1. ],\n", " [ 6.6, 2.9, 4.6, 1.3],\n", " [ 5.2, 2.7, 3.9, 1.4],\n", " [ 5. , 2. , 3.5, 1. ],\n", " [ 5.9, 3. , 4.2, 1.5],\n", " [ 6. , 2.2, 4. , 1. ],\n", " [ 6.1, 2.9, 4.7, 1.4],\n", " [ 5.6, 2.9, 3.6, 1.3],\n", " [ 6.7, 3.1, 4.4, 1.4],\n", " [ 5.6, 3. , 4.5, 1.5],\n", " [ 5.8, 2.7, 4.1, 1. ],\n", " [ 6.2, 2.2, 4.5, 1.5],\n", " [ 5.6, 2.5, 3.9, 1.1],\n", " [ 5.9, 3.2, 4.8, 1.8],\n", " [ 6.1, 2.8, 4. , 1.3],\n", " [ 6.3, 2.5, 4.9, 1.5],\n", " [ 6.1, 2.8, 4.7, 1.2],\n", " [ 6.4, 2.9, 4.3, 1.3],\n", " [ 6.6, 3. , 4.4, 1.4],\n", " [ 6.8, 2.8, 4.8, 1.4],\n", " [ 6.7, 3. , 5. , 1.7],\n", " [ 6. , 2.9, 4.5, 1.5],\n", " [ 5.7, 2.6, 3.5, 1. ],\n", " [ 5.5, 2.4, 3.8, 1.1],\n", " [ 5.5, 2.4, 3.7, 1. ],\n", " [ 5.8, 2.7, 3.9, 1.2],\n", " [ 6. , 2.7, 5.1, 1.6],\n", " [ 5.4, 3. , 4.5, 1.5],\n", " [ 6. , 3.4, 4.5, 1.6],\n", " [ 6.7, 3.1, 4.7, 1.5],\n", " [ 6.3, 2.3, 4.4, 1.3],\n", " [ 5.6, 3. , 4.1, 1.3],\n", " [ 5.5, 2.5, 4. , 1.3],\n", " [ 5.5, 2.6, 4.4, 1.2],\n", " [ 6.1, 3. , 4.6, 1.4],\n", " [ 5.8, 2.6, 4. , 1.2],\n", " [ 5. , 2.3, 3.3, 1. ],\n", " [ 5.6, 2.7, 4.2, 1.3],\n", " [ 5.7, 3. , 4.2, 1.2],\n", " [ 5.7, 2.9, 4.2, 1.3],\n", " [ 6.2, 2.9, 4.3, 1.3],\n", " [ 5.1, 2.5, 3. , 1.1],\n", " [ 5.7, 2.8, 4.1, 1.3],\n", " [ 6.3, 3.3, 6. , 2.5],\n", " [ 5.8, 2.7, 5.1, 1.9],\n", " [ 7.1, 3. , 5.9, 2.1],\n", " [ 6.3, 2.9, 5.6, 1.8],\n", " [ 6.5, 3. , 5.8, 2.2],\n", " [ 7.6, 3. , 6.6, 2.1],\n", " [ 4.9, 2.5, 4.5, 1.7],\n", " [ 7.3, 2.9, 6.3, 1.8],\n", " [ 6.7, 2.5, 5.8, 1.8],\n", " [ 7.2, 3.6, 6.1, 2.5],\n", " [ 6.5, 3.2, 5.1, 2. ],\n", " [ 6.4, 2.7, 5.3, 1.9],\n", " [ 6.8, 3. , 5.5, 2.1],\n", " [ 5.7, 2.5, 5. , 2. ],\n", " [ 5.8, 2.8, 5.1, 2.4],\n", " [ 6.4, 3.2, 5.3, 2.3],\n", " [ 6.5, 3. , 5.5, 1.8],\n", " [ 7.7, 3.8, 6.7, 2.2],\n", " [ 7.7, 2.6, 6.9, 2.3],\n", " [ 6. , 2.2, 5. , 1.5],\n", " [ 6.9, 3.2, 5.7, 2.3],\n", " [ 5.6, 2.8, 4.9, 2. ],\n", " [ 7.7, 2.8, 6.7, 2. ],\n", " [ 6.3, 2.7, 4.9, 1.8],\n", " [ 6.7, 3.3, 5.7, 2.1],\n", " [ 7.2, 3.2, 6. , 1.8],\n", " [ 6.2, 2.8, 4.8, 1.8],\n", " [ 6.1, 3. , 4.9, 1.8],\n", " [ 6.4, 2.8, 5.6, 2.1],\n", " [ 7.2, 3. , 5.8, 1.6],\n", " [ 7.4, 2.8, 6.1, 1.9],\n", " [ 7.9, 3.8, 6.4, 2. ],\n", " [ 6.4, 2.8, 5.6, 2.2],\n", " [ 6.3, 2.8, 5.1, 1.5],\n", " [ 6.1, 2.6, 5.6, 1.4],\n", " [ 7.7, 3. , 6.1, 2.3],\n", " [ 6.3, 3.4, 5.6, 2.4],\n", " [ 6.4, 3.1, 5.5, 1.8],\n", " [ 6. , 3. , 4.8, 1.8],\n", " [ 6.9, 3.1, 5.4, 2.1],\n", " [ 6.7, 3.1, 5.6, 2.4],\n", " [ 6.9, 3.1, 5.1, 2.3],\n", " [ 5.8, 2.7, 5.1, 1.9],\n", " [ 6.8, 3.2, 5.9, 2.3],\n", " [ 6.7, 3.3, 5.7, 2.5],\n", " [ 6.7, 3. , 5.2, 2.3],\n", " [ 6.3, 2.5, 5. , 1.9],\n", " [ 6.5, 3. , 5.2, 2. ],\n", " [ 6.2, 3.4, 5.4, 2.3],\n", " [ 5.9, 3. , 5.1, 1.8]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y = df.loc[:,['target']].values" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-setosa'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-versicolor'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica'],\n", " ['Iris-virginica']], dtype=object)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = StandardScaler().fit_transform(x)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sepal lengthsepal widthpetal lengthpetal width
0-0.9006811.032057-1.341272-1.312977
1-1.143017-0.124958-1.341272-1.312977
2-1.3853530.337848-1.398138-1.312977
3-1.5065210.106445-1.284407-1.312977
4-1.0218491.263460-1.341272-1.312977
\n", "
" ], "text/plain": [ " sepal length sepal width petal length petal width\n", "0 -0.900681 1.032057 -1.341272 -1.312977\n", "1 -1.143017 -0.124958 -1.341272 -1.312977\n", "2 -1.385353 0.337848 -1.398138 -1.312977\n", "3 -1.506521 0.106445 -1.284407 -1.312977\n", "4 -1.021849 1.263460 -1.341272 -1.312977" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(data = x, columns = features).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PCA Projection to 2D" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pca = PCA(n_components=2)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "principalComponents = pca.fit_transform(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's look under the hood" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 0.52237162, -0.26335492, 0.58125401, 0.56561105],\n", " [ 0.37231836, 0.92555649, 0.02109478, 0.06541577]])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca.components_" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-0.90068117, 1.03205722, -1.3412724 , -1.31297673])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[0]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-2.2645417283948999" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(x[0], pca.components_[0])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.50570390277378396" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(x[0], pca.components_[1])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.1510571102112408e-16" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(pca.components_[0], pca.components_[1])" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "principalDf = pd.DataFrame(data = principalComponents\n", " , columns = ['principal component 1', 'principal component 2'])" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
principal component 1principal component 2
0-2.2645420.505704
1-2.086426-0.655405
2-2.367950-0.318477
3-2.304197-0.575368
4-2.3887770.674767
\n", "
" ], "text/plain": [ " principal component 1 principal component 2\n", "0 -2.264542 0.505704\n", "1 -2.086426 -0.655405\n", "2 -2.367950 -0.318477\n", "3 -2.304197 -0.575368\n", "4 -2.388777 0.674767" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "principalDf.head(5)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target
0Iris-setosa
1Iris-setosa
2Iris-setosa
3Iris-setosa
4Iris-setosa
\n", "
" ], "text/plain": [ " target\n", "0 Iris-setosa\n", "1 Iris-setosa\n", "2 Iris-setosa\n", "3 Iris-setosa\n", "4 Iris-setosa" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[['target']].head()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
principal component 1principal component 2target
0-2.2645420.505704Iris-setosa
1-2.086426-0.655405Iris-setosa
2-2.367950-0.318477Iris-setosa
3-2.304197-0.575368Iris-setosa
4-2.3887770.674767Iris-setosa
\n", "
" ], "text/plain": [ " principal component 1 principal component 2 target\n", "0 -2.264542 0.505704 Iris-setosa\n", "1 -2.086426 -0.655405 Iris-setosa\n", "2 -2.367950 -0.318477 Iris-setosa\n", "3 -2.304197 -0.575368 Iris-setosa\n", "4 -2.388777 0.674767 Iris-setosa" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "finalDf = pd.concat([principalDf, df[['target']]], axis = 1)\n", "finalDf.head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualize 2D Projection" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use a PCA projection to 2d to visualize the entire data set. You should plot different classes using different colors or shapes. Do the classes seem well-separated from each other? " ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nsZVKlaqU+E0aMsXFxdGzZ0+mTp3K5s2bGTp0KLNnz2bLli0kJyezbNkyli5dmvVvy5Yts9bt168f\nu3fv5qOPPmL+/PkAhRqqEE79+vX55Zdf8sxWsGnTJs/bLIzGjRtjreW7774L2+bbb79l06ZNTJw4\nkXvuuYcrr7ySlJQUatWqVax9K2oqckVERMqA888/n1at2uH3/xHI7+Pm4xhzF0lJVenXrx/ly5dn\n2bK/UbeuH2OaYUwv4DHgPuLiGgIPM27cOG6++WbOPPNM/ud/OuDzvRChB8eJi3uFG28s3NnPorZn\nz548y1q0aAE4c/qWL1+elJSUHI8qVapkte3SpQunn346c+fOZd68ebRv3z7bGWz3unXrxrFjx3jx\nxRezlllrefbZZ4v1DmVdu3alcuXKjB8/Pux8vZlniHOfsZ08eXKpunuailxx7d577412F0odZeaN\ncnNPmXlTFnIzxvDaazOpWPE/+P0XALOAQ8BR4B18vs74/X/j9ddnZ3283qBBA779dh3PP/8crVrt\npEqVidSsOYdbbrmctWvX8sADD2Rt/7777iYYXA6Mx7kYPrsMYAjW/sqIESNO6ji8fhQ/ePBgOnfu\nzCOPPMLLL7/Mn//8Zx588EFat25N06ZNC1w/Li6OPn36MH/+fL788stCD1UI56qrrqJ9+/bcfffd\n3HnnnUybNo3u3buzb98+oPB3dnOrcuXKTJo0iS+//JLzzz+fxx9/nOnTpzN8+PCsoRvnnHMOjRs3\n5u6772b8+PE8++yzpKSk8PPPPxdLn4qLilxxrSzeGvBkKTNvlJt7ysybspLbueeey+rVn3PJJfWB\nVKAyEA/0omXL4yxd+iE9evTIsU7FihW57bbbWLv2S/bt283OnT/y0ksv0rp16xztrr76ah566CHg\nAfz+C4EXgfeBicTFnYvP9xqzZ8+iefPmJ3UM+c0hW5i2N910EwkJCTz33HPccccdvPrqq9xwww28\n9957hd53v379OHz4MMYYrr322kL3L78++nw+3nvvPfr168fs2bN58MEHqVWrFs888wzW2jwXpBV2\nu+GWZ3frrbeyZMkSqlSpwv/93/9x//33s27dOrp37w44Bf27775L69atefzxx3nkkUc4++yzc9yg\nojQwJzs4ubQyxrQB1qxZs4Y2bdpEuzsiIiInbe3atbRt25bC/G774Ycf+OKLLwgEArRo0aLIfhe+\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize = (8,8))\n", "ax = fig.add_subplot(1,1,1) \n", "ax.set_xlabel('Principal Component 1', fontsize = 15)\n", "ax.set_ylabel('Principal Component 2', fontsize = 15)\n", "ax.set_title('2 Component PCA', fontsize = 20)\n", "\n", "\n", "targets = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']\n", "colors = ['r', 'g', 'b']\n", "for target, color in zip(targets,colors):\n", " indicesToKeep = finalDf['target'] == target\n", " ax.scatter(finalDf.loc[indicesToKeep, 'principal component 1']\n", " , finalDf.loc[indicesToKeep, 'principal component 2']\n", " , c = color\n", " , s = 50)\n", "ax.legend(targets)\n", "ax.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The three classes appear to be well separated! \n", "\n", "iris-virginica and iris-versicolor could be better separated, but still good!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Explained Variance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The explained variance tells us how much information (variance) can be attributed to each of the principal components." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.72770452, 0.23030523])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca.explained_variance_ratio_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Together, the first two principal components contain 95.80% of the information. The first principal component contains 72.77% of the variance and the second principal component contains 23.03% of the variance. The third and fourth principal component contained the rest of the variance of the dataset. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What are other applications of PCA (other than visualizing data)?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If your learning algorithm is too slow because the input dimension is too high, then using PCA to speed it up is a reasonable choice. (most common application in my opinion). We will see this in the MNIST dataset. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If memory or disk space is limited, PCA allows you to save space in exchange for losing a little of the data's information. This can be a reasonable tradeoff." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What are the limitations of PCA? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- PCA is not scale invariant. check: we need to scale our data first. \n", "- The directions with largest variance are assumed to be of the most interest \n", "- Only considers orthogonal transformations (rotations) of the original variables \n", "- PCA is only based on the mean vector and covariance matrix. Some distributions (multivariate normal) are characterized by this, but some are not. \n", "- If the variables are correlated, PCA can achieve dimension reduction. If not, PCA just orders them according to their variances. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 1 }