{"id":637,"date":"2018-11-14T16:38:09","date_gmt":"2018-11-14T22:38:09","guid":{"rendered":"http:\/\/www.jacobsoft.com.mx\/?p=637"},"modified":"2025-02-20T13:37:49","modified_gmt":"2025-02-20T19:37:49","slug":"analisis-del-componente-principal","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/analisis-del-componente-principal\/","title":{"rendered":"An\u00e1lisis del Componente Principal"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">An\u00e1lisis del Componente Principal<\/h2>\n\n\n\n<p>El PCA es una herramienta para <strong>reducir la dimensionalidad<\/strong> en los datos que puede ser utilizado para convertir un conjunto bastante grande de variables en un conjunto m\u00e1s peque\u00f1o que contenga la mayor cantidad de informaci\u00f3n contenida en el conjunto grande.<\/p>\n\n\n\n<p>Si quieres verlo en video:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"An\u00e1lisis del Componente Principal PCA con Python\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/oAsZfT-paG0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>En este sentido, el PCA es un procedimiento matem\u00e1tico que transforma un conjunto de variables correlacionadas en un conjunto (m\u00e1s peque\u00f1o) de variables<strong> no correlacionadas<\/strong> llamadas <strong>componentes principales<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>El primer componente principal representa la mayor cantidad posible de variabilidad en los datos y cada componente subsiguiente explica la mayor parte de la variabilidad restante, es decir, que el conjunto de datos de menor dimensi\u00f3n deber\u00e1 preservar la <strong><em>varianza<\/em><\/strong> de los datos originales.<\/p>\n\n\n\n<p>Por ejemplo, un conjunto de datos de dos dimensiones se puede reducir proyectando los puntos sobre una l\u00ednea, entonces, cada instancia en el conjunto de datos puede ser representada por un solo valor en lugar de una par de valores. Un conjunto de datos de tres dimensiones se puede reducir a dos dimensiones proyectando las variables en un plano.<\/p>\n\n\n\n<p>En general, un conjunto de <strong>n dimensiones<\/strong> se puede reducir proyectando el conjunto de datos en un subespacio de k dimensiones, donde k es menor a n.<\/p>\n\n\n\n<p>De manera m\u00e1s formal, PCA puede ser utilizado para encontrar un conjunto de vectores que abarca un subespacio, el cual minimiza la suma del <strong><em>error cuadr\u00e1tico<\/em><\/strong> de los datos proyectados. La proyecci\u00f3n retendr\u00e1 la mayor proporci\u00f3n de la varianza de los datos originales.<\/p>\n\n\n\n<p>PCA rota el conjunto de datos para alinearlo con sus componentes principales para maximizar la varianza contenida dentro de los primeros componentes principales. Supongamos que tenemos el siguiente conjunto de datos graficados en la figura:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"676\" height=\"510\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_1.png\" alt=\"\" class=\"wp-image-678\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_1.png 676w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_1-300x226.png 300w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><figcaption>Gr\u00e1fica de dos variables de datos<\/figcaption><\/figure><\/div>\n\n\n\n<p>Las instancias forman una elipse aproximada que se aprecia desde el origen hacia la parte superior derecha de la gr\u00e1fica. Para reducir la dimensi\u00f3n de este conjunto de datos, debemos proyectar los puntos en una l\u00ednea. En la siguiente gr\u00e1fica se muestran dos l\u00edneas en donde podr\u00edan proyectarse los datos. En cada una de ellas la varianza es distinta, por lo que la tarea es ver en cual de las dos l\u00edneas las instancias tienen la mayor variaci\u00f3n.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"472\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_2.png\" alt=\"\" class=\"wp-image-679\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_2.png 629w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_2-300x225.png 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><figcaption>Lineas sobre las cuales se pueden proyectar los datos del conjunto<\/figcaption><\/figure><\/div>\n\n\n\n<p>Las instancias tienen la mayor variaci\u00f3n sobre la l\u00ednea de guiones, m\u00e1s que sobre la l\u00ednea punteada. De hecho, la l\u00ednea en guiones es el primer componente principal. El segundo componente principal debe ser ortogonal al primero, esto es, que el segundo componente principal debe ser estad\u00edsticamente independiente, y al parecer ser\u00e1 perpendicular al primero componente principal,como se muestra en la siguiente figura:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"603\" height=\"452\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_3.png\" alt=\"\" class=\"wp-image-680\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_3.png 603w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_3-300x225.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><figcaption>Primero y segundo componente principal<\/figcaption><\/figure><\/div>\n\n\n\n<p>Cada componente principal subsecuente preserva la mayor cantidad de la varianza restante, la \u00fanica restricci\u00f3n es que cada uno debe ser ortogonal al anterior.<\/p>\n\n\n\n<p>Si ahora consideramos que los datos tienen tres variables, por lo que el conjunto de datos es tridimensional:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"486\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_4.png\" alt=\"\" class=\"wp-image-681\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_4.png 648w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_grafica_4-300x225.png 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><figcaption>Conjunto de datos tridimensional<\/figcaption><\/figure><\/div>\n\n\n\n<p>Los puntos pueden ser rotados y trasladados de tal forma que se acomoden dos dimensiones y los puntos ahora forman una elipse, la tercera dimensi\u00f3n casi no tendr\u00e1 varianza y entonces podr\u00e1 ser descartada.<\/p>\n\n\n\n<p>El PCA es m\u00e1s \u00fatil cuando la varianza en el conjunto de datos esta distribuida de manera desigual a lo largo de las dimensiones. Si por el contrario, un conjunto de datos entres dimensiones forma forma una esfera convexa, el an\u00e1lisis PCA no podr\u00eda ser tan efectivo dado que hay una varianza similar en cada dimensi\u00f3n, ninguna de las dimensiones podr\u00e1 ser descartada sin perder informaci\u00f3n significativa.<\/p>\n\n\n\n<p>Visualmente es m\u00e1s f\u00e1cil identificar los componentes principales cuando el conjunto de datos esta compuesto por s\u00f3lo dos o tres dimensiones. Para un conjunto de mayor dimensi\u00f3n los c\u00e1lculos para los componentes principales se describen en la siguientes secciones.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Varianza y Covarianza<\/h3>\n\n\n\n<p>Antes de entrar de lleno con los c\u00e1lculos para identificar los componentes principales, veamos algunos conceptos b\u00e1sicos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Varianza<\/h3>\n\n\n\n<p>La varianza es la medida que nos indica que tan disperso o distribuido se encuentra un conjunto de valores. La varianza se calcula como el promedio del cuadrado de la diferencia de valores con respecto a la media de ese conjunto de valores:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"212\" height=\"96\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_Vrianza.png\" alt=\"\" class=\"wp-image-682\"\/><figcaption>Ecuaci\u00f3n de la varianza<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Covarianza<\/h3>\n\n\n\n<p>La covarianza es la medida de que tanto dos variables cambian juntas. Es una medida de fuerza de la correlaci\u00f3n entre dos conjuntos de variables. Si la covarianza entre <strong>dos variables es cero<\/strong>, las variables <strong>no est\u00e1n<\/strong> correlacionadas. Sin embargo, el que dos variables no est\u00e9n correlacionadas, no implica que sean independientes, dado que la correlaci\u00f3n es s\u00f3lo una medida de dependencia lineal y se calcula con la siguiente ecuaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"76\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_covarianza.png\" alt=\"\" class=\"wp-image-683\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_covarianza.png 380w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_covarianza-300x60.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><figcaption>Ecuaci\u00f3n de la covarianza<\/figcaption><\/figure><\/div>\n\n\n\n<p>Si la covarianza no es cero, el signo indica si las variables est\u00e1n <strong>positiva<\/strong> o <strong>negativamente<\/strong> correlacionadas. Si dos variables est\u00e1n positivamente correlacionadas, significa que una incrementa su valor cuando la otra lo incrementa.<\/p>\n\n\n\n<p>Cuando dos variables est\u00e1n <strong>negativamente correlacionadas<\/strong> significa que una variable tiene un decremento relativo a su media cuando la otra variable presenta un incremento relativo a su media. <\/p>\n\n\n\n<p>La <strong>matriz de covarianza<\/strong> describe los valores de la covarianza entre cada par de valores del conjunto de datos. El elemento (i,j) indica la covarianza de la dimensi\u00f3n i, j de los datos. Por ejemplo, la matrizde covarianza de un conjunto de datos de tres dimensiones se ver\u00eda de la siguiente forma:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"145\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_covarianza.png\" alt=\"\" class=\"wp-image-684\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_covarianza.png 464w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_covarianza-300x94.png 300w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><figcaption>Matriz de covarianza de un conjunto de 3 dimensiones<\/figcaption><\/figure><\/div>\n\n\n\n<p>Si como ejemplo consideramos el siguiente conjunto de datos:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular\"><table><tbody><tr><td>2<\/td><td>0<\/td><td>-1.4<\/td><\/tr><tr><td>2.2<\/td><td>0.2<\/td><td>-1.5<\/td><\/tr><tr><td>2.4<\/td><td>0.1<\/td><td>-1<\/td><\/tr><tr><td>1.9<\/td><td>0<\/td><td>-1.2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>En la tabla anterior tenemos 3 variables como 4 casos, entonces la media de cada variable es: 2.125, 0.075 y -1.275, con ello podemos ahora calcular la covarianza de cada par de variables para generar la siguiente matriz de covarianzas.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"134\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_datos.png\" alt=\"\" class=\"wp-image-687\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_datos.png 615w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/PCA_matriz_datos-300x65.png 300w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><figcaption>Matriz de covarianzas del conjunto de datos anterior<\/figcaption><\/figure><\/div>\n\n\n\n<p>Utilizando <strong>Numpy <\/strong>podemos generar la matriz de covarianza de la siguiente manera:<\/p>\n\n\n\n\n<pre><span class=\"key\">import<\/span> numpy <span class=\"key\">as<\/span> np\nX = [[2, 0, -1.4], [2.2, 0.2, -1.5], [2.4, 0.1, -1], [1.9, 0, -1.2]]\n\nprint np.cov(np.array(X).T\n\nout:\n[[ 0.04916667 0.01416667 0.01916667]\n[ 0.01416667 0.00916667 -0.00583333]\n[ 0.01916667 -0.00583333 0.04916667]]\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Vectores Propios y Valores Propios<\/h3>\n\n\n\n<p>Un vector se describe por su direcci\u00f3n y su magnitud, o longitud. Un vector propio de una matriz es un vector no cero que satisface la siguiente ecuaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"114\" height=\"40\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/Vector_propio.png\" alt=\"\" class=\"wp-image-688\"\/><\/figure><\/div>\n\n\n\n<p>En la ecuaci\u00f3n anterior <strong>v<\/strong> es el vector propio <strong>A<\/strong> es una matriz cuadrada y <strong>lanbda<\/strong> es una escalar llamado valor propio. La direcci\u00f3n del vector propio se mantiene igual despu\u00e9s de ser transformado por A, s\u00f3lo cambia su magnitud, dada por el valor propio, es decir que al multiplicar una matriz por uno de sus vector propios es equivalente a escalar el vector propio.&nbsp;<\/p>\n\n\n\n<p>En ingl\u00e9s un vector propio se conoce como <strong>eigenvector <\/strong>y la palabra <strong>eigen <\/strong>en Alem\u00e1n significa pertenece a, o que es<em> peculiar a<\/em>, por lo que el vector propio de una matriz es un vector que pertenece a, y caracteriza la estructura de los datos.<\/p>\n\n\n\n<p>Tanto los vectores propios como los valores propios s\u00f3lo pueden ser derivados de <strong><em>matrices cuadradas<\/em><\/strong> y no todas las matrices cuadradas tienen vectores propios o valores propios. Si una matriz tiene vectores y valores propios, tendr\u00e1 un par por cada una de sus dimensiones. Los <strong>componentes principales<\/strong> de una matriz&nbsp; son los vectores propios de su <strong><em>matriz de covarianzas<\/em><\/strong>, ordenados por sus correspondientes valores propios.<\/p>\n\n\n\n<p>El vector propio con el valor propio m\u00e1s grande es el <strong>primer <\/strong>componente principal, el segundo componente principal es el vector propio con el segundo valor propio m\u00e1s grande y as\u00ed sucesivamente.&nbsp;<\/p>\n\n\n\n<p>Como ejemplo, calculemos los vectores propios y sus valores propios de la  siguiente matriz cuadrada:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"170\" height=\"97\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/matriz_cuadrada.png\" alt=\"\" class=\"wp-image-689\"\/><\/figure><\/div>\n\n\n\n<p>De la ecuaci\u00f3n que mostramos previamente, recordemos que el producto de la matriz A y cualquiera de sus vectores propios debe ser igual al vector propio multiplicado por su valor propio.<\/p>\n\n\n\n<p>Iniciemos encontrando los valores propios, los cuales se pueden encontrar con las siguientes ecuaciones caracter\u00edsticas:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"178\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/ecuaciones_caracteristicas.png\" alt=\"\" class=\"wp-image-691\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/ecuaciones_caracteristicas.png 424w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/ecuaciones_caracteristicas-300x126.png 300w\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" \/><\/figure><\/div>\n\n\n\n<p>La ecuaci\u00f3n caracter\u00edsticas establece que el determinante de la matriz, esto es, la diferencia entre los datos de la matriz y el producto de la matriz identidad y un valor propio es cero:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"104\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/determinante_matriz.png\" alt=\"\" class=\"wp-image-692\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/determinante_matriz.png 422w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/determinante_matriz-300x74.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/figure><\/div>\n\n\n\n<p>Ambos valores propios de esta matriz son iguales a -1. Por lo que ahora podemos usar los valores propios para resolver los vectores propios<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"114\" height=\"40\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/Vector_propio.png\" alt=\"\" class=\"wp-image-688\"\/><\/figure><\/div>\n\n\n\n<p>Primero, hacemos la ecuaci\u00f3n igual a cero:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"178\" height=\"51\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/ecuacion_igual_a-cero.png\" alt=\"\" class=\"wp-image-693\"\/><\/figure><\/div>\n\n\n\n<p>Sustituyendo los valores para A tenemos lo siguiente:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"112\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustituyendo_valores.png\" alt=\"\" class=\"wp-image-694\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustituyendo_valores.png 780w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustituyendo_valores-300x43.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustituyendo_valores-768x110.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora podemos sustituir el primer valor propio para resolver los vectores propios.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"537\" height=\"101\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustitucion_valores_propios.png\" alt=\"\" class=\"wp-image-696\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustitucion_valores_propios.png 537w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sustitucion_valores_propios-300x56.png 300w\" sizes=\"auto, (max-width: 537px) 100vw, 537px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora mostramos las ecuaciones resultantes como un sistema de ecuaciones:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"115\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/sistema_ecuaciones.png\" alt=\"\" class=\"wp-image-697\"\/><\/figure><\/div>\n\n\n\n<p>Cada vector no cero que satisface las ecuaciones anteriores, puede ser utilizado como vector propio:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"321\" height=\"90\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios.png\" alt=\"\" class=\"wp-image-699\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios.png 321w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios-300x84.png 300w\" sizes=\"auto, (max-width: 321px) 100vw, 321px\" \/><\/figure><\/div>\n\n\n\n<p>PCA requiere vectores unitarios o vectores que tengan una longitud de 1, Por lo que se pueden normalizar los vectores dividi\u00e9ndolos por su normal, lo cual se consigue con la siguiente ecuaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"295\" height=\"82\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vector_normalizado.png\" alt=\"\" class=\"wp-image-701\"\/><\/figure><\/div>\n\n\n\n<p>La norma del vector es la siguiente:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"269\" height=\"100\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vector_norm.png\" alt=\"\" class=\"wp-image-702\"\/><\/figure><\/div>\n\n\n\n<p>Esto genera el siguiente vector propio unitario:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"100\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vector_propio_unitario.png\" alt=\"\" class=\"wp-image-703\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vector_propio_unitario.png 422w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vector_propio_unitario-300x71.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/figure><\/div>\n\n\n\n<p>Para verificar con Numpy que la soluci\u00f3n anterior sea correcta, podemos hacer lo siguiente donde la funci\u00f3n eig regresa una tupla de valores propios&nbsp; y los vectores propios.<\/p>\n\n\n\n\n<pre><span class=\"key\">import<\/span> numpy <span class=\"key\">as<\/span> np\nv, w = np.linalg.eig(np.array([[1, -2], [2, -3]]))\n\nw; v\narrray([-0.99999998, -1.00000002])\narray([[0.70710678, 0.70710678], [0.70710678, 0.70710678]])\n<\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async=\"\" src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2380084220870127\" data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Reducci\u00f3n de la Dimensionalidad<\/h2>\n\n\n\n<p>Utilizando PCA (Principal Component Analysis) para reducir el siguiente conjunto de datos de dos dimensiones en s\u00f3lo una dimensi\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>x1<\/strong><\/td><td><strong>x2<\/strong><\/td><\/tr><tr><td>0.9<\/td><td>1<\/td><\/tr><tr><td>2.4<\/td><td>2.6<\/td><\/tr><tr><td>1.2<\/td><td>1.7<\/td><\/tr><tr><td>0.5<\/td><td>0.7<\/td><\/tr><tr><td>0.3<\/td><td>0.7<\/td><\/tr><tr><td>1.8<\/td><td>1.4<\/td><\/tr><tr><td>0.5<\/td><td>0.6<\/td><\/tr><tr><td>0.3<\/td><td>0.6<\/td><\/tr><tr><td>2.5<\/td><td>2.6<\/td><\/tr><tr><td>1.3<\/td><td>1.1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>El primer paso es restar la media de cada variable en cada uno de los casos<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"389\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_resta_de_la_media.png\" alt=\"\" class=\"wp-image-705\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_resta_de_la_media.png 644w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_resta_de_la_media-300x181.png 300w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora calculamos los componentes principales de los datos. Recordando que los componentes principales son los vectores propios de la matriz de covarianza ordenada por los valores propios.<\/p>\n\n\n\n<p>Los componentes principales se pueden encontrar utilizando dos t\u00e9cnicas diferentes. La primera t\u00e9cnica requiere calcular la matriz de covarianza de los datos. Dado que la matriz de covarianza ser\u00e1 una matriz cuadrada, podemos calcular los vectores y los valores propios como se describi\u00f3 anteriormente.&nbsp;<\/p>\n\n\n\n<p>La segunda t\u00e9cnica utiliza la descomposici\u00f3n del valor singular de la matriz de datos para encontrar los vectores y la ra\u00edz cuadrada de los valores propios de la matriz de covarianza. Utilizamos la primera t\u00e9cnia para describir el proceso y la segunda t\u00e9cnica con la librer\u00eda <strong>scikit-learn<\/strong>.<\/p>\n\n\n\n<p>La siguiente matriz es la matriz de covarianza de los datos<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"102\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/matriz_covarianza_datos.png\" alt=\"\" class=\"wp-image-707\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/matriz_covarianza_datos.png 433w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/matriz_covarianza_datos-300x71.png 300w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/figure><\/div>\n\n\n\n<p>Utilizando la t\u00e9cnica descrita anteriormente, los valores propios son 1.250 y 0.034. La siguiente matriz representa los vectores propios unitarios:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"340\" height=\"91\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios_unitarios.png\" alt=\"\" class=\"wp-image-708\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios_unitarios.png 340w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/vectores_propios_unitarios-300x80.png 300w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><\/figure><\/div>\n\n\n\n<p>Ahora proyectamos los datos en los componentes principales. El primer vector propio tiene los valores propios m\u00e1s altos y es el primer componente principal. Construimos una matriz de&nbsp;transformaci\u00f3n en donde cada columna de la matriz es el vector propio para un componente principal.<\/p>\n\n\n\n<p>Si se estuviera reduciendo un conjunto de datos de 5 dimensiones en un conjunto de tres dimensiones, se construir\u00eda una matriz de transformaci\u00f3n con 3 columnas. En este ejemplo, proyectamos el conjunto de datos de dos dimensiones en una dimensi\u00f3n, por lo que s\u00f3lo utilizamos el vector propio para el primer componente principal.<\/p>\n\n\n\n<p>Finalmente calculamos el producto punto de la matriz de datos con la matriz de transformaci\u00f3n, resultando lo siguiente:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"533\" height=\"418\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/producto_punto.png\" alt=\"\" class=\"wp-image-710\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/producto_punto.png 533w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/producto_punto-300x235.png 300w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/figure><\/div>\n\n\n\n<p>El vector resultante es la dimensi\u00f3n resultante, es decir, es la matriz de una dimensi\u00f3n que corresponde a la variable que resulta de reducir las dos dimensiones originales en una dimensi\u00f3n del conjunto de datos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PCA con Python<\/h2>\n\n\n\n<p>Ahora implementaremos el <a href=\"https:\/\/click.linksynergy.com\/link?id=cTjR400Zjac&amp;offerid=145238.2767345&amp;type=2&amp;murl=http%3A%2F%2Fwww.informit.com%2Ftitle%2F9780134770857\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Ahora implementaremos el an\u00e1lisis de componente principal con python, aunque quiz\u00e1s antes de continuare podr\u00eda ser conveniente que revisaras algunos de los curso de programaci\u00f3n que te podr\u00edan ayudar a entender la estructura y la l\u00f3gica detr\u00e1s de los lenguajes m\u00e1s comunes. (opens in a new tab)\">an\u00e1lisis de componente principal con python<\/a>, aunque quiz\u00e1s antes de continuare podr\u00eda ser conveniente que revisaras algunos de los <a rel=\"noreferrer noopener\" aria-label=\"Ahora implementaremos el an\u00e1lisis de componente principal con python, aunque quiz\u00e1s antes de continuare podr\u00eda ser conveniente que revisaras algunos de los curso de programaci\u00f3n que te podr\u00edan ayudar a entender (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=529351.17&amp;type=3&amp;subid=0\" target=\"_blank\">curso de programaci\u00f3n<\/a> que te podr\u00edan ayudar a entender la estructura y la l\u00f3gica detr\u00e1s de los lenguajes m\u00e1s comunes.<\/p>\n\n\n\n<p>Como primer paso importamos las librer\u00edas necesarias para machine learning<\/p>\n\n\n\n\n<pre><span class=\"key\">import<\/span> numpy <span class=\"key\">as<\/span> np\n<span class=\"key\">import<\/span> matplotlib.pyplot <span class=\"key\">as<\/span> plt\n<span class=\"key\">import<\/span> pandas <span class=\"key\">as<\/span> pd\n<\/pre>\n\n\n\n<p>Para este ejemplo utilizaremos un conjunto de datos de una colecci\u00f3n de vinos con 13 variables independientes y una variable dependiente, que nos da la clasificaci\u00f3n del vino. Las variables independientes son valores caracter\u00edsticos del vino en cuesti\u00f3n y que van desde el alcohol, el aroma, el sabor, la acidez, y otros componentes o ingredientes que clasifican un vino.<\/p>\n\n\n\n\n<pre><span class=\"com\"># Importamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span class=\"tex\">Wine.csv<\/span>')\nX = dataset.iloc[:, <span class=\"key\">0<\/span>:<span class=\"key\">13<\/span>].values\ny = dataset.iloc[:, <span class=\"key\">13<\/span>].values\n<\/pre>\n\n\n\n<p>El conjunto de 177 casos con 13 variables independientes es el siguiente:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1191\" height=\"538\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/wine_dataset.png\" alt=\"\" class=\"wp-image-713\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/wine_dataset.png 1191w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/wine_dataset-300x136.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/wine_dataset-768x347.png 768w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/wine_dataset-1024x463.png 1024w\" sizes=\"auto, (max-width: 1191px) 100vw, 1191px\" \/><figcaption>Conjunto de datos para clasificaci\u00f3n de los vinos<\/figcaption><\/figure><\/div>\n\n\n\n<p>Una vez que importamos los datos, separamos las variables independientes en la matriz X y la variable dependiente en el vector y.<\/p>\n\n\n\n<p>Ahora dividimos el conjunto de datos en dos conjuntos para entrenamiento y prueba<\/p>\n\n\n\n\n<pre><span class=\"com\"># Splitting the dataset into the Training set and Test set<\/span>\n<span class=\"key\">from<\/span> sklearn.model_selection <span class=\"key\">import<\/span> train_test_split\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = <span class=\"key\">0.2<\/span>, random_state = <span class=\"key\">0<\/span>)\n\n\n<\/pre>\n\n\n\n<p>Nuestro siguiente paso ser\u00e1 estandarizar las escalas para las 13 variables<\/p>\n\n\n\n\n<pre><span class=\"com\"># Feature Scaling<\/span>\n<span class=\"key\">from<\/span> sklearn.preprocessing <span class=\"com\">import<\/span> StandardScaler\nsc = StandardScaler()\nX_train = sc.fit_transform(X_train)\nX_test = sc.transform(X_test)\n\n\n<\/pre>\n\n\n\n<p>Una vez con los datos normalizados, aplicamos el PCA para reducir la dimensi\u00f3n de 13 a 2 variables.<\/p>\n\n\n\n\n<pre><span class=\"com\"># Applying PCA<\/span>\n<span class=\"key\">from<\/span> sklearn.decomposition <span class=\"key\">import<\/span> PCA\npca = PCA(n_components = <span class=\"key\">2<\/span>)\nX_train = pca.fit_transform(X_train)\nX_test = pca.transform(X_test)\n\n\n<\/pre>\n\n\n\n<p>El conjunto de entrenamiento qued\u00f3 ahora con 2 variables de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"594\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_training_set.png\" alt=\"\" class=\"wp-image-718\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_training_set.png 416w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_training_set-210x300.png 210w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><figcaption>conjunto de entrenamiento reducido de 13 a 2 variables<\/figcaption><\/figure><\/div>\n\n\n\n<p>Lo mismo sucedi\u00f3 con el conjunto de pruebas X_test. Ahora para saber que tanto se expresa la varianza de los dos componentes principales resultantes, con relaci\u00f3n a la dimensi\u00f3n original, es decir, a los datos de las 13 variables originales, podemos extraer esa informaci\u00f3n del objeto PCA y analizarla.<\/p>\n\n\n\n\n<pre><span class=\"com\"># Explicaci\u00f3n de la varianza\n# Creamos un vector con el porcentaje de influencia de la varianza \n# para las dos variables resultantes del conjunto de datos<\/span>\nexplained_variance = pca.explained_variance_ratio_\n\n\n<\/pre>\n\n\n\n<p>Los valores de la variable explained_variance son:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"338\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/explained_variance.png\" alt=\"\" class=\"wp-image-719\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/explained_variance.png 416w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/explained_variance-300x244.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/figure><\/div>\n\n\n\n<p>Los dos componentes principales resultantes son los dos valores propios de los vectores propios con el valor m\u00e1s alto de los 13 originales del conjunto de datos. De ah\u00ed se obtuvieron los dos m\u00e1s altos para obtener las dos dimensiones resultantes o componentes principales. El primero representa el 36.9%&nbsp; y el segundo el 19.3%<\/p>\n\n\n\n<p>Para comprobar que las dos variables resultantes representan a las 13 variables originales vamos a hacer la predicci\u00f3n de la variable dependiente con la regresi\u00f3n log\u00edstica, comprobando los resultados de predicci\u00f3n con la matriz de confusi\u00f3n:<\/p>\n\n\n\n\n<pre><span class=\"com\"># Fitting Logistic Regression to the Training set<\/span>\n<span class=\"key\">from<\/span> sklearn.linear_model <span class=\"key\">import<\/span> LogisticRegression\nclassifier = LogisticRegression(random_state = <span class=\"key\">0<\/span>)\nclassifier.fit(X_train, y_train)\n\n<span class=\"com\"># Predicting the Test set results<\/span>\ny_pred = classifier.predict(X_test)\n\n<span class=\"com\"># Making the Confusion Matrix<\/span>\n<span class=\"key\">from<\/span> sklearn.metrics <span class=\"key\">import<\/span> confusion_matrix\ncm = confusion_matrix(y_test, y_pred)\n\n<\/pre>\n\n\n\n<p>Al hacer la predicci\u00f3n para el conjunto de prueba, la matriz de confusi\u00f3n es la siguiente:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"338\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_matriz_de_confusion.png\" alt=\"\" class=\"wp-image-722\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_matriz_de_confusion.png 416w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_matriz_de_confusion-300x244.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><figcaption>Matriz de confusi\u00f3n de la regresi\u00f3n log\u00edstica<\/figcaption><\/figure><\/div>\n\n\n\n<p>Como se observa en la matriz de confusi\u00f3n, s\u00f3lo hay un error, un falso positivo en la primera de las tres clases de vinos. Por lo que concluimos que la predicci\u00f3n es correcta utilizando el conjunto de datos de dos variables, en lugar del conjunto de datos de 13 variables.<\/p>\n\n\n\n<p>Ahora podemos graficar los datos de predicci\u00f3n para observar de manera visual los resultados de dicha clasificaci\u00f3n<\/p>\n\n\n\n\n<pre><span class=\"key\">from<\/span> matplotlib.colors <span class=\"key\">import<\/span> ListedColormap\nX_set, y_set = X_test, y_test\nX1, X2 = np.meshgrid(np.arange(start = X_set[:, <span class=\"key\">0<\/span>].min() - <span class=\"key\">1<\/span>, stop = X_set[:, <span class=\"key\">0<\/span>].max() + <span class=\"key\">1<\/span>, step = <span class=\"key\">0.01<\/span>),\n                     np.arange(start = X_set[:, <span class=\"key\">1<\/span>].min() - <span class=\"key\">1<\/span>, stop = X_set[:, <span class=\"key\">1<\/span>].max() + <span class=\"key\">1<\/span>, step = <span class=\"key\">0.01<\/span>))\nplt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),\n             alpha = <span class=\"key\">0.75<\/span>, cmap = ListedColormap(('<span class=\"tex\">red<\/span>', '<span class=\"tex\">green<\/span>', '<span class=\"tex\">blue<\/span>')))\nplt.xlim(X1.min(), X1.max())\nplt.ylim(X2.min(), X2.max())\nfor i, j in enumerate(np.unique(y_set)):\n    plt.scatter(X_set[y_set == j, <span class=\"key\">0<\/span>], X_set[y_set == j, <span class=\"key\">1<\/span>],\n                c = ListedColormap(('<span class=\"tex\">red<\/span>', '<span class=\"tex\">green<\/span>', '<span class=\"tex\">blue<\/span>'))(i), label = j)\nplt.title('Logistic Regression (Test set)')\nplt.xlabel('PC1')\nplt.ylabel('PC2')\nplt.legend()\nplt.show()\n\n\n<\/pre>\n\n\n\n<p>La gr\u00e1fica resultante es la siguiente<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"584\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_grafica_pred.png\" alt=\"\" class=\"wp-image-723\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_grafica_pred.png 656w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/11\/pca_grafica_pred-300x267.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><figcaption>Gr\u00e1fica de la predicci\u00f3n con regresi\u00f3n log\u00edstica<\/figcaption><\/figure>\n\n\n\n<p>En la gr\u00e1fica observamos las \u00e1reas de las 3 clases de vinos con los puntos de las predicci\u00f3n del conjunto de pruebas, donde adem\u00e1s observamos el \u00fanico error que existe, el punto verde en la zona roja.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comentarios finales<\/h3>\n\n\n\n<p>Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de <a rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Servioces, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/link?id=cTjR400Zjac&amp;offerid=145238.2267051&amp;type=2&amp;murl=http%3A%2F%2Fwww.informit.com%2Ftitle%2F9780134116549\" target=\"_blank\">machine learning<\/a> para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y <a rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Servioces, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/link?id=cTjR400Zjac&amp;offerid=145238.2267051&amp;type=2&amp;murl=http%3A%2F%2Fwww.informit.com%2Ftitle%2F9780134116549\" target=\"_blank\">machine learning<\/a>, algunos de ellos podr\u00edan ser: <a rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Servioces, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.460&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">Azure de Microsoft<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Servioces, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=584883.64&amp;subid=0&amp;type=4\" target=\"_blank\">Alibaba Cloud<\/a>, <a href=\"https:\/\/click.linksynergy.com\/link?id=cTjR400Zjac&amp;offerid=145238.2726982&amp;type=2&amp;murl=http%3A%2F%2Fwww.informit.com%2Ftitle%2F9780134702179\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Services, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure. (opens in a new tab)\">Amazon Web Services<\/a>, en el este enlace puede checar un <a rel=\"noreferrer noopener\" aria-label=\"Muchas veces es necesario implementar este tipo de ejemplos en la nube con una mayor cantidad de datos reales y ejecutar varias de las t\u00e9cnicas y algoritmos de machine learning para realizar algunos comparativos con los distintos algoritmos de clasificaci\u00f3n y\/o predicci\u00f3n. Hoy en d\u00eda existe diversos proveedores de recursos en la nube para ciencia de datos y machine learning, algunos de ellos podr\u00edan ser: Azure de Microsoft, Alibaba Cloud, Amazon Web Servioces, en el este enlace puede checar un webinar para conocer las diferentes certificaciones de Azure (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.460&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">webinar<\/a> para conocer las diferentes certificaciones de Azure.<\/p>\n\n\n\n<p>Por otro lado, algunos cursos con buenos descuentos para servicios en la nube los puede checar en <a rel=\"noreferrer noopener\" aria-label=\"Por otro lado, algunos cursos con buenos descuentos para servicios en la nube los puede checar en Alibaba, donde adem\u00e1s (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=584883.11&amp;type=3&amp;subid=0\" target=\"_blank\">Alibaba<\/a>, donde adem\u00e1s podr\u00e1s verificar informaci\u00f3n sobre los distintos <a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=584883.7&amp;type=3&amp;subid=0\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Por otro lado, algunos cursos con buenos descuentos para servicios en la nube los puede checar en Alibaba, donde adem\u00e1s podr\u00e1s verificar informaci\u00f3n sobre los distintos servicios. (opens in a new tab)\">servicios<\/a>.<\/p>\n\n\n\n<p>Puedes probar tambi\u00e9n con los <a rel=\"noreferrer noopener\" aria-label=\"Puedes probar tambi\u00e9n con los trials sin costo por tiempo suficiente para hacer todo tipo de pruebas (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=584883.76&amp;subid=0&amp;type=4\" target=\"_blank\">trials sin costo<\/a> por tiempo suficiente para hacer todo tipo de <a rel=\"noreferrer noopener\" aria-label=\"Puedes probar tambi\u00e9n con los trials sin costo por tiempo suficiente para hacer todo tipo de pruebas. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000786&amp;type=3&amp;subid=0\" target=\"_blank\">pruebas<\/a>.<\/p>\n\n\n\n<p>Por \u00faltimo, siempre ser\u00e1 importante contar con las bases de la <a rel=\"noreferrer noopener\" aria-label=\"Por \u00faltimo, siempre ser\u00e1 importante contar con las bases de la programaci\u00f3n y el manejo de bases de datos, por lo que aqu\u00ed podr\u00edas encontrar algunos cursos interesantes. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=529351.17&amp;type=3&amp;subid=0\" target=\"_blank\">programaci\u00f3n <\/a>y el manejo de bases de datos, por lo que <a rel=\"noreferrer noopener\" aria-label=\"Por \u00faltimo, siempre ser\u00e1 importante contar con las bases de la programaci\u00f3n y el manejo de bases de datos, por lo que aqu\u00ed podr\u00edas encontrar algunos cursos interesantes. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=529351.17&amp;type=3&amp;subid=0\" target=\"_blank\">aqu\u00ed <\/a>podr\u00edas encontrar algunos cursos interesantes.<\/p>\n\n\n\n<p>Si te interesa el art\u00edculo comp\u00e1rtelo<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<style class=\"advgb-styles-renderer\">\n.key{color:blue;}\n\n\n.key{color:blue;}\n\n\n.key{color:blue;}\n\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n\n.key{color:blue;}\n.com{color:gray;}\n.tex{color:green;}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>An\u00e1lisis del Componente Principal El PCA es una herramienta para reducir la dimensionalidad en los &hellip; <\/p>\n","protected":false},"author":2,"featured_media":639,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[25,35,46],"tags":[91,66,57,58,56,82,50,59,90,92,93],"class_list":["post-637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-inteligencia-artificial","category-machine-learning","tag-analisis-de-componente-principal","tag-analisis-de-datos","tag-ciencia-de-datos","tag-data-mining","tag-data-science","tag-inteligencia-artificial","tag-machine-learning","tag-mineria-de-datos","tag-pca","tag-principal-component-analysis","tag-reduccion-de-la-dimension"],"aioseo_notices":[],"author_meta":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"featured_img":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/destacada_pca-300x165.png","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/destacada_pca.png","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/10\/destacada_pca.png","author_info":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/algoritmos\/\" class=\"advgb-post-tax-term\">Algoritmos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Machine Learning<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Algoritmos<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">Machine Learning<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">an\u00e1lisis de componente principal<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ciencia de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Mining<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Science<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">machine learning<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">PCA<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">principal component analysis<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">reducci\u00f3n de la dimensi\u00f3n<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">an\u00e1lisis de componente principal<\/span>","<span class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/span>","<span class=\"advgb-post-tax-term\">Ciencia de Datos<\/span>","<span class=\"advgb-post-tax-term\">Data Mining<\/span>","<span class=\"advgb-post-tax-term\">Data Science<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">machine learning<\/span>","<span class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/span>","<span class=\"advgb-post-tax-term\">PCA<\/span>","<span class=\"advgb-post-tax-term\">principal component analysis<\/span>","<span class=\"advgb-post-tax-term\">reducci\u00f3n de la dimensi\u00f3n<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Publicado 7 a\u00f1os hace","modified":"Actualizado 1 a\u00f1o hace"},"absolute_dates":{"created":"Publicado el noviembre 14, 2018","modified":"Actualizado el febrero 20, 2025"},"absolute_dates_time":{"created":"Publicado el noviembre 14, 2018 4:38 pm","modified":"Actualizado el febrero 20, 2025 1:37 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/comments?post=637"}],"version-history":[{"count":28,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/637\/revisions"}],"predecessor-version":[{"id":1772,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/637\/revisions\/1772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media\/639"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media?parent=637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/categories?post=637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/tags?post=637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}