Skip to content

Instantly share code, notes, and snippets.

Created January 27, 2015 17:06
Show Gist options
  • Save anonymous/e226f575956dd86ee867 to your computer and use it in GitHub Desktop.
Save anonymous/e226f575956dd86ee867 to your computer and use it in GitHub Desktop.
Ejemplo de reducción de dimensiones de 3d a 2d mediante el algoritmo PCA.
{
"metadata": {
"name": "",
"signature": "sha256:5d66fa6da28a68033d13693c3b9c12bbf5be8fdc9e2f58b768a6f9a2a817086b"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h1>Reducci\u00f3n de dimensionalidad: 3D => 2D</h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Importamos las librerias necesarias:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"\n",
"# importamos las librer\u00edas b\u00e1sicas\n",
"import random\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# importamos librer\u00edas y class para dibujar los vectores que definen las dimensiones\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from mpl_toolkits.mplot3d import proj3d\n",
"from matplotlib.patches import FancyArrowPatch\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",
" 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)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Creamos y dibujamos los datos</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Creamos un conjunto de muestras con las que trabajar en el siguiente ejemplo. <strong>Distribuci\u00f3n normal</strong> de 100 muestras con 3 caracter\u00edsticas cada una:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# centro de la distribuci\u00f3n\n",
"mean = np.array([1,1,1.5]) \n",
"# matriz de covarianza de la distribuci\u00f3n\n",
"cov = np.array([[1.2,0,0],[0,.9,0],[0,0,1.8]])\n",
"# n\u00famero de muestras\n",
"size = 100 \n",
"# creamos la distribuci\u00f3n\n",
"X = np.random.multivariate_normal(mean, cov, size)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Dibujamos</strong> el conjunto de muestras creado:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig = plt.figure()\n",
"ax = fig.gca(projection=\"3d\")\n",
"ax.plot(X[:,0], X[:,1], X[:,2], \"ro\")\n",
"ax.set_title(\"Muestras X\")\n",
"ax.set_xlabel(\"x1\")\n",
"ax.set_ylabel(\"x2\")\n",
"ax.set_zlabel(\"x3\")\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nhvNQAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x3f843c8>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Optimizamos datos</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Tratamos los datos, <strong>normalizamos y escalamos</strong>:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# normalizamos los datos\n",
"X -= np.mean(X, 0)\n",
"# escalamos las caracter\u00edsticas\n",
"X /= np.std(X, 0)\n",
"# escalamos todos los datos a 1\n",
"X /= np.abs(X).max()"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Dibujamos</strong> el nuevo conjunto de datos optimizado:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig = plt.figure()\n",
"ax = fig.gca(projection=\"3d\")\n",
"ax.plot(X[:,0], X[:,1], X[:,2], \"co\")\n",
"ax.set_title(\"Muestras X escaladas\")\n",
"ax.set_xlabel(\"x1\")\n",
"ax.set_ylabel(\"x2\")\n",
"ax.set_zlabel(\"x3\")\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0xa6fdd30>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>Algoritmo PCA</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Aplicamos el algoritmo PCA (<em>Principal Component Analysis</em>).</p>\n",
"<p>Primero calculamos e imprimimos la <strong>matriz de covarianza</strong> de los datos optimizados:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# centro de la distribuci\u00f3n\n",
"mean_f1 = np.mean(X[:,0])\n",
"mean_f2 = np.mean(X[:,1])\n",
"mean_f3 = np.mean(X[:,2])\n",
"# matriz covarianza\n",
"C = np.cov(X.T)\n",
"print \"Matriz de covarianza de X:\"\n",
"print C"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Matriz de covarianza de X:\n",
"[[ 0.14941101 0.01186524 0.00770462]\n",
" [ 0.01186524 0.14941101 -0.01495807]\n",
" [ 0.00770462 -0.01495807 0.14941101]]\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>Calculamos <strong>autovectores y autovalores</strong> de la matriz de covarianza con la funci\u00f3n Descomposici\u00f3n en valores singulares <em>svd()</em> (autovectores ordenados seg\u00fan autovalores de mayor a menor):</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"U, s, V = np.linalg.svd(C)\n",
"print \"Autovalores:\"\n",
"print s\n",
"print \"Autovectores:\"\n",
"print U"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Autovalores:\n",
"[ 0.16526682 0.15682372 0.12614251]\n",
"Autovectores:\n",
"[[-0.28938195 0.80722322 -0.51444024]\n",
" [-0.76247841 0.13052089 0.63371206]\n",
" [ 0.57869229 0.5756344 0.57771989]]\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Dibujamos los autovectores</strong> sobre los datos:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig = plt.figure()\n",
"ax = fig.gca(projection=\"3d\")\n",
"ax.plot(X[:,0], X[:,1], X[:,2], \"co\")\n",
"ax.plot([0], [0], [0], \"ko\")\n",
"for v in U.T:\n",
" a = Arrow3D([0, v[0]], [0, v[1]], [0, v[2]], mutation_scale=20, arrowstyle=\"-|>\", color=\"k\")\n",
" ax.add_artist(a)\n",
"ax.set_title(\"Muestras X y sus autovectores\")\n",
"ax.set_xlabel(\"x1\")\n",
"ax.set_ylabel(\"x2\")\n",
"ax.set_zlabel(\"x3\")\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nNPZbaYslJgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0xa696860>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Calculamos las nuevas 'k' dimensiones</strong> seg\u00fan la varianza que queramos mantener de los datos originales. Al ser un ejemplo, con el objetivo de mostrar la reducci\u00f3n de dimensionalidad, se mantiene una varianza muy baja:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def dim_reduction(s, var):\n",
" for k in range(1,1000):\n",
" variance_retaines = sum(s[0:k]) / sum(s)\n",
" if variance_retaines >= var:\n",
" return k\n",
"\n",
"k = dim_reduction(s, .69)\n",
"print \"Reducci\u00f3n de dimensiones. De 3D a \" + str(k) + \"D\""
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Reducci\u00f3n de dimensiones. De 3D a 2D\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p><strong>Dibujamos</strong> la proyecci\u00f3n de los datos en el <strong>nuevo espacio 2D</strong>:</p>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"U_reduced = U[:,:k] \n",
"Z = U_reduced.T.dot(X.T)\n",
"Z = -Z.T\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"ax.plot(Z[:,0], Z[:,1], \"go\")\n",
"ax.set_title(\"Datos en el nuevo espacio\")\n",
"ax.set_xlabel(\"z1\")\n",
"ax.set_ylabel(\"z2\")\n",
"plt.show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nrkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0xb23bda0>"
]
}
],
"prompt_number": 10
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment