Está en la página 1de 9

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/350802071

Métodos matemáticos para aplicación de Análisis de Componentes Principales


en Machine Learning

Preprint · April 2021


DOI: 10.13140/RG.2.2.33244.92801

CITATIONS READS
0 949

4 authors:

Rachit Vargas Lopez Paola Wong Ramírez


Lead University, Costa Rica Lead University, Costa Rica
3 PUBLICATIONS   0 CITATIONS    3 PUBLICATIONS   0 CITATIONS   

SEE PROFILE SEE PROFILE

Alejandro Zamora Esquivel William Aguilar


Lead University Lead University
5 PUBLICATIONS   0 CITATIONS    3 PUBLICATIONS   0 CITATIONS   

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Alejandro Zamora Esquivel on 11 April 2021.

The user has requested enhancement of the downloaded file.


Métodos matemáticos para aplicación de Análisis de
Componentes Principales en Machine Learning
R ACHIT VARGAS1 , PAOLA W ONG2 , A LEJANDRO Z AMORA3 , AND W ILLIAM AGUILAR4
1 Rachit Vargas, Científico de datos y experto en Machine Learning.
2 Paola Wong, Científica de Datos.
3 Justin Alejandro Zamora Esquivel, Científico de Datos
4 William Aguilar, Ingeniero en Software.

Compiled April 11, 2021

Resumen—Este paper está basado en la técnica de Análisis de Componentes Principales con un enfoque en
Machine Learning, un poco de la historia sobre el mismo y además, decidimos focalizar la investigación en el
aprendizaje no supervisado. Dentro de la investigación podrán encontrar un ACP, en el cual explicamos la uti-
lización de los vectores y valores propios de dicha técnica, además de los tópicos matemáticos para desarrollar un
Análisis de Componentes Principales debidamente. Este ACP se realizó con una tabla preestablecida por nuestro
profesor académico PhD. Carlos González Alvarado, en la cual debíamos aplicar la técnica de ACP, mostrar grá-
ficamente los resultados; para esto, utilizamos el lenguaje Python, con el mismo, procedimos a realizar y explicar
el gráfico de sedimentación, el plano de componentes principales y el círculo de correlaciones con lo que contenía
la tabla antes mencionada.

Abreviaturas
Esta publicación plasma la importancia del Análisis de Com-
ponentes Principales en el campo de la ciencia de datos, donde su
ACP Análisis de Complementos Principales principal aporte recae en el problema de la alta dimensionalidad
la cual significa que un conjunto de datos tiene una gran cantidad
PCA Principal Components Analysis
de características. El problema principal asociado con la alta
ML Machine Learning dimensionalidad en el campo del Machine Learning es el sobreajuste
del modelo, que reduce la capacidad de generalizar más allá de los
DL Deep Learning
ejemplos en el conjunto de entrenamiento.
IA Inteligencia Artificial
Particularmente esta publicación busca detallar la importancia que
presenta el Análisis de Componentes Principales en es reducir la di-
mensionalidad de un conjunto de datos que cuenta de una gran cantidad
1 Introducción de variables interrelacionadas mientras se retiene la mayor cantidad
posible de la variación presente en el conjunto de datos. El Análisis
En esta publicación se busca plasmar los diversos tópicos matemáticos de Componentes Principales hace esto posible gracias a que aplica
relacionados en su mayoría al álgebra lineal, los cuales dan fundamento una transformación a un nuevo conjunto de variables llamados Com-
al desarrollo y aplicación del Análisis de Componentes Principales ponentes Principales (CP), las cuales no están correlacionadas y que
(ACP) en Machine Learning. Con el objetivo de plasmar, explicar y están ordenados de manera que los primeros retienen la mayor parte de
ejemplificar estos fundamentos, se recurre principalmente a métodos la variación presente en todas las variables originales.
prácticos de aplicación del ACP y sus aplicabilidades en análisis de
datos y en general en todo el campo de la ciencia de datos. Por esta
razón en la presente publicación se expondrán principios, conceptos, 2 Metodología
fundamentos y tópicos relacionados del Análisis de Componentes
Principales, posteriormente se ejemplificarán los fundamentos Los métodos requeridos para elaborar la presente investigación se
matemáticos en las aplicaciones del álgebra lineal sobre el contexto del presentan en función de las necesidades explicativas, didácticas y
ACP. Finalmente se presenta un Análisis de Componentes Principales divulgativas. La idea central del Análisis de Componentes Principales
en el lenguaje de programación Python como caso de estudio y es reducir la dimensionalidad de un conjunto de datos que consta de
muestreo de resultados. Asimismo, se conjuga la aplicación del ACP una gran cantidad de variables interrelacionadas mientras se retiene
con Machine Learning y Aprendizaje no Supervisado. la mayor cantidad posible de la variación presente en el conjunto

1
de datos. Esto se logra transformando a un nuevo conjunto de vector (segundo componente principal) buscará la dirección en donde
variables, los componentes principales, que no están correlaciona- los datos tengan mayor varianza y menor correlación con el primer
dos y que están ordenados de manera que los primeros retienen vector. Este procedimiento formará 2 vectores ortogonales con un
la mayor parte de la variación presente en todas las variables originales. ángulo recto de 90◦ .

La principal ambición de esta publicación es brindar una ex-


plicación resumida de los tópicos matemáticos del Análisis de Fig. 1. Representación algebraica del ACP
Componentes Principales y las aplicaciones de este en el campo del
Machine Learning. Particularmente las explicaciones conceptuales
son acompañadas de las relaciones matemáticas que esta poseen,
para posteriormente ser evidenciadas en una aplicación práctica del
ACP con la ayuda del lenguaje Python. El trayecto definido para la
elaboración de esta publicación se plantea la necesidad de elaborar
una publicación que contenga una introducción, antecedentes y
fundamentos matemáticos, aplicaciones prácticas y resultados, todo lo
anterior extrictamente ligado al Análisis de Componentes Principales.

3 Principios del Análisis de Componentes Princi-


pales
En la industria de la Inteligencia Artificial (IA) el subcampo del
Machine Learning es la familia que emplea diversas técnicas que
buscan poder perfeccionar sistemas expertos a partir de la experiencia Fuente: Wikipedia.
en los datos. Los algoritmos de Machine Learning han tenido un
gran auge en el desarrollo de la automatización y transformación
Podemos decir que el Análisis de Componentes Principales es un
digital en muchas otras industrias como en la medicina y el transporte.
método estadístico que también involucra el álgebra lineal entre sus
Estas técnicas se encuentran clasificadas en aprendizaje supervisado,
procedimientos. Es aquí en donde los términos de valores propios,
aprendizaje no supervisado, aprendizaje por refuerzo y aprendizaje
vectores propios y combinaciones lineales toman gran relevancia
profundo o más conocido como deep learning (famosamente conocido
en este método. Desarrollaremos la explicación matemática detrás
por el uso de redes neuronales). En esta investigación profundizaremos
de este algoritmo en los secciones próximas, pero es importante
el método del Análisis de Componentes Principales que pertenece al
mencionar estos conceptos en esta introducción y otro más como los
conjunto de técnicas del aprendizaje no supervisado, cuyo objetivo no
loadings (factores), ya que nos servirán en futuras ocasiones en esta
es predecir variables, sino estudiarlas para el uso en un determinado
investigación.
análisis.
El ACP brinda una enorme ventaja en el análisis de la información,
El Análisis de Componentes Principales es una técnica que consiste
porque permite trabajar con menos variables en nuestro conjunto de
en reducir la dimensionalidad de un conjunto de datos sin perder la
datos y ayuda a delimitar el problema, lo cual conlleva a entenderlo
presición y validez de la información. Esto significa que podemos
mejor. Usualmente, los expertos en Machine Learning tienden a
pasar de P dimensiones con n observaciones a Q dimensiones en
utilizar este método para posteriormente aplicar modelos predicativos
donde Q < P. El Análisis de Componentes Principales es un técnica
del aprendizaje supervisado como clasificación o regresión lineal.
comúnmente utilizada en el día a día de los ingenieros de datos,
científicos de datos y expertos en Machine Learning, ya que para estos
profesionales es normal contar con un dataset que contiene mucha
información que aporta muy poco valor o su significado en el análisis 4 Machine Learning
es irrelevante. El ACP forma parte de la familia de los métodos de
extracción de características. De acuerdo con Paloma Recuero de los El Machine Learning o aprendizaje automático es la rama de la
Santos (2018) el ACP: inteligencia artificial que permite a las máquinas aprender de los datos
y mejorar constantemente sin la necesidad de ser programada a base
El Algoritmo de Componentes Principales (en adelante PCA) de reglas por una persona. El principal objetivo de los algoritmos
consiste en una técnica de selección de características concretas de ML es identificar patrones para extraer caracteristicas o realizar
que utiliza una transformación ortogonal para convertir predicciones en nuestros conjunto de datos para la toma de decisiones.
un conjunto de observaciones de variables, posiblemente Según McKinsey & Company (2015): ”El aprendizaje automático se
correlacionadas, en un conjunto más reducido de variables que basa en algoritmos que pueden aprender de los datos sin depender de
ya no guardan correlación y que se conocen como componentes la programación basada en reglas.” (parr. 1).
principales. (parr. 2).
Varios algoritmos de ML están programados bajo los conceptos del
álgebra lineal. Además de álgebra lineal, los científicos de datos y ex-
El método emplea una seríe de transformaciones lineales que apunta pertos de ML utilizan cálculos multivariantes, así como la probabilidad
a proyectar sobre las direcciones de mayor varianza que muestran y la estadística para programar estos algoritmos. El ML se divide en
nuestros datos. Para explicar esto usaremos la figura 1. En esta conjuntos de técnicas que se encuentran agrupados en las siguientes
representación, el vector que tiende a apuntar más al eje de las abscisas categorias:
lo tomaremos como el primer componente principal. Este vector
apuntará a donde los datos tienen mayor variabilidad y el segundo • Aprendizaje supervisado: Contienen entradas y salidas

2
predichas, la máquina debe encontrar esta relación y se entrena todos los aspectos del aprendizaje o de rasgo de la inteligencia pueden,
por medio de datos etiquetados, utilizando modelos de clasifi- en principio, ser descritos de una forma tan precisa que se puede crear
cación y regresión. una máquina que los simule”. (Guillen, 2016).

• Aprendizaje por refuerzo: En este tipo de aprendizaje se imple- En un documento publicado por la Universidad de Stanford en 2007,
menta el entrenamiento de máquina por medio de prueba y error John McCarthy expresó su concepto sobre I.A:
hasta determinar la manera más óptima de solucionar problemas
o de lograr el objetivo, podría decirse que se basa en exploración
inteligente. La ciencia y la ingeniería de crear máquinas inteligentes,
especialmente programas de computación inteligentes. Está
• Aprendizaje no supervisado: Se desarrollará la explicación relacionada con la tarea similar de utilizar ordenadores para
comprender la inteligencia humana, pero la IA no se limita
• Redes neuronales o deep learning: Caracterizados por la simu- a métodos que sean observables biológicamente. (Alandete,
lación de las neuronas cerebrales. 2011).

Las redes neuronales han tomado gran auge en el avance de la


automatización en las grandes empresas y en la ciencia en general. Por ende, podemos decir que John McCarthy fundó la IA porque como
Esta tecnología es bastante peculiar debido a su similitud con el él lo expresó en una entrevista con Jeffrey Mishlove:
funcionamiento de las neuronas del cerebro humano. Muchas personas
logran identificar esta tecnología, ya que ha provocado mucho ruido en “Empezó a interesarme realmente el concepto de IA desde el 49,
todo lo que ha hecho en estos últimos años. Unos lo asocian como la cuando me gradué como estudiante en matemáticas. . . El prob-
tecnología que venció al mejor jugador de GO en China (AlphaGo) y lema es desarrollar un lenguaje con el cual podamos expresarnos
otros lo vinculan con los coches autónomos de Tesla. De acuerdo con con nuestros programas, los hechos y razonamientos sobre el
el matemático y doctor en informática, Carlos Garcia (s.f.), el deep sentido común del mundo que los humanos tenemos, eso es
learning: necesario para volverlos inteligentes y es en lo que estoy traba-
jando, usando herramientas matemáticas lógicas”. (ThinkingAl-
El Deep Learning lleva a cabo el proceso de Machine Learning lowedTv, 2011).
usando una red neuronal artificial que se compone de un
número de niveles jerárquicos. En el nivel inicial de la jerarquía Fue entre 1950 y 1960 que Frank Rosenblatt desarrolló el “Percep-
la red aprende algo simple y luego envía esta información trón”, inspirado en el funcionamiento de las neuronas del cerebro
al siguiente nivel. El siguiente nivel toma esta información humano, pero llevado a lenguaje de máquina, en el que expone
sencilla, la combina, compone una información algo un poco las neuronas artificiales como discriminadores lineales, que se
más compleja, y se lo pasa al tercer nivel, y así sucesivamente. comunican por medio de nodos interconectados y así forman redes
(parr. 10). neuronales complejas. Fue hasta 1997 con el sistema IBM Deep
Blue, basado en aprendizaje profundo que una máquina logra derrotar
al campeón mundial de ajedrez. Por medio del entrenamiento,
Ciertamente, se cree que la inteligencia artificial podrá resolver muchos
fue encontrando patrones en las jugadas y usándolo no solamente
problemas en la vida real, es por ello que, la rama del álgebra lineal
para mejorar sino implementando el uso de datos para tomar decisiones.
contribuirá con el desarrollo de esta tecnología en el mundo. De
acuerdo con una entrevista impulsada por el MIT Technology Review,
el padre de la IA, Geoffrey Hinton, cree que el Machine Learning sería
capaz de hacerlo todo, sin embargo aún hacen falta bastantes avances 5 Aprendizaje no supervisado
conceptuales en el campo.
En la sección pasada definimos el aprendizaje supervisado como una
familia de técnicas que estudian conjuntos de datos debidamente
4.1 Historia del Machine Learning
etiquetados, con el fin de buscar predecir variables dependientes.
Los fundamentos del Machine Learning inician desde 1812 con el Por el contrario, en el aprendizaje no supervisado la problemática a
teorema de Bayes y la teoría de la probabilidad, el cual indica que resolver no es de predecir una variable, sino de explorar por medio de
un evento puede ocurrir si existen condiciones previas, también es técnicas conjuntos de datos (no etiquetados) que permitan explicar las
conocida como probabilidad inversa o probabilidad condicional. El características o estructuras clave de los datos.
teorema original estaba basado en problemas más complejos. Sin
embargo, con la llegada de la programación informática y algoritmos El uso del aprendizaje no supervisado se vuelve muy común en las
de integración mejorados, se ha vuelto cada vez más importante en el empresas, esto porque en la mayoría de las veces nos encontramos con
cálculo. conjuntos de datos que no cuentan con las etiquetas que esperamos en
nuestro análisis. Computacionalmente, el aprendizaje no supervisado
Alan Turing, fue el matemático que se preguntó de que si las máquinas es mucho más complejo que el supervisado, asimismo, el porcentaje
podían pensar, con su artículo: “Sobre números computables, con de precisión y confiabilidad de resultados es menor del no supervisado
una aplicación al Entscheidungsproblem”. Luego de esto demostró que el supervisado. Esto no quita el hecho de que el aprendizaje no
que aún de forma algorítmica existen problemas irresolubles; para supervisado sea muy valioso en el camino de la Inteligencia Artificial,
esto, creó la conocida “Máquina de Turing” y así nacen las bases de la pues como se mencionó, hoy por hoy es muy utilizado en el campo del
Inteligencia Artificial. Machine Learning y en la misma minería de datos.

A su vez, en 1956 John McCarthy organiza la famosa conferencia de De las principales técnicas del aprendizaje no supervisado contamos
Dartmouth, donde se utiliza por primera vez el término: “Inteligencia con: agrupamiento de datos, reducción de dimensionalidad (uso del
Artificial”, mencionando: “Este estudio procederá sobre la base de que ACP), identificación de valores atípicos y detección de novedades.

3
Para efectos de nuestra investigación, nos enfocaremos en la reducción Esto debido a que el ACP son nuevas variables que se con-
de dimensionalidad con la aplicación del ACP e indirectamente con la struyen a través de combinaciones lineales y mezclas de las variables
detección de valores atípicos a través de un ejemplo práctico utilizando iniciales de entrada. Estas combinaciones surgen de tal manera que
código python y la librería scikit-learn. No obstante, antes de aden- las nuevas variables no están correlacionadas y la mayor parte de la
trarnos al código, explicaremos desde el ágebra lineal como funciona información de las variables iniciales de entradas son comprimidas
el ACP con el fin de entender el agente inteligente de nuestra caja negra. enlos primeros componentes. Por su parte, los Eigenvectores y
eigenvalores siempre vienen en pares, de modo que cada vector propio
tiene un valor propio. Y su número es igual al número de dimensiones
de los datos.
6 Antecendentes matemáticos
Como se explicó anteriormente el Análisis de Componentes Princi- Esto último es gran importancia debido qué los Eigenvectores
pales busca solucionar problemas relacionados en la reducción de de la matriz de covarianza son en realidad las direcciones de los
la dimensionalidad. La reducción de las dimensiones del espacio ejes donde hay más varianza, los cuales llamamos Componentes
de características se denomina reducción de dimensionalidad. La Principales. Y por su parte, los Eigenvalores, son los coeficientes
reducción de dimensiones es necesaria cuando hay demasiadas adjuntos a los vectores propios, que dan la cantidad de varianza
características en un conjunto de datos, lo que dificulta la distinción transportada en cada componente principal. Habiendo entendido los
entre las importantes que son relevantes para el resultado y las antecendentes de los Componentes Principales, podemos adentrarnos
redundantes o no tan importantes. en los tópicos matemáticos del ACP.

El Análisis de Componentes Principales tiene como base es-


tandarizar el rango de las variables iniciales continuas para que cada
una de ellas contribuya por igual al análisis. La estandarización en el 7 Tópicos matemáticos
PCA es bastante sensible con respecto a las varianzas de las variables
iniciales. En otras palabras, si existen grandes diferencias entre los El ACP brinda una enorme ventaja en el análisis de la información,
rangos de las variables iniciales, aquellas variables con rangos más porque permite trabajar con menos variables en nuestro conjunto de
grandes predominarán sobre las que tienen rangos pequeños (por datos y ayuda a delimitar el problema, lo cual conlleva a entenderlo
ejemplo, una variable que oscila entre 0 y 100 dominará sobre una mejor. Usualmente, los expertos en Machine Learning tienden a uti-
variable que oscila entre 0 y 1 ), lo que dará lugar a resultados sesgados. lizar este método para posteriormente aplicar modelos predictivos del
Por lo tanto, transformar los datos a escalas comparables puede evitar aprendizaje supervisado como clasificación o regresión lineal.
este problema. Esto último se puede visualizar matemáticamente de la En esta técnica de extracción de características, se utilizan los eigen-
siguiente manera: vectores y los eigenvalores.
variable − media
z= (1)
DesviacinEstndar 1. Eigenvectores: se refieren a la multiplicación de una matriz y un
En esta misma línea, es fundamental comprender que ocurre cómo vector. El resultado es un múltiplo entero del vector de origen.
las variables del conjunto de datos de entrada varían de la media
entre sí, o en otras palabras, para ver si existe alguna relación entre Los eigenvectores sólo pueden existir cuando son matrices cuadradas,
ellas. Porque a veces, las variables están altamente correlacionadas es decir, una matriz nxn, el número de eigenvectores es n. Si se
de tal manera que contienen información redundante. Entonces, para escalan antes de hacer la multiplicación por la matriz, se van a obtener
identificar estas correlaciones, calculamos la matriz de covarianza. múltiplos del eigenvector. Por último, todos son ortogonales entre
Describimos la matriz de covarianza es una matriz simétrica p × p ellos.
(donde p es el número de dimensiones) la cual tiene como entradas En el Análisis de Componentes principales, cada componente contiene
las covarianzas asociadas con todos los pares posibles de las variables un eigenvector, y el orden de sus eigenvalores es decreciente. Además,
iniciales. Supongamos un conjunto de datos tridimensionales con 3 a cada eigenvector le corresponde un eigenvalor y viceversa.
variables x, y y z, la matriz de covarianza es una matriz de 3 × 3 de El ACP contiene una tabla de datos que se puede ir transformando
esto de:   en una matriz de distancias; para transformar dichos datos, se debe
Cov( x, x ) Cov( x, y) Cov( x, z) conocer la magnitud y dirección de de los coeficientes de las variables
 
 Cov(y, x ) Cov(y, y) Cov(y, z) 
 
(2) originales y posteriormente, crear variables sintéticas que serán
  llamados “Componentes”.
Cov(z, x ) Cov(z, y) Cov(z, z)
En resumen, como pudimos observar, la matriz de covarianza es más Por ejemplo: El componente 1 lo nombraremos C1 que sería
una tabla que resume las correlaciones entre todos los posibles pares la combinación lineal de X j , entonces:
de variables. C1= a11 X 1 + ... + a1j X j + ...a1m X m , X j es la columna j de X.
Entonces C1 es el valor para el i-ésimo individuo:
Los antecedentes matemáticos del Análisis de Componentes Ci1 = a11 X + ... + a1j X + ...a1m Xim
Principales no estaría completo sin antes adjuntar una breve intro- Sin embargo, este componente principal, no va a ser suficiente para
ducción a Eigenvectores y eigenvalores, ya que son los conceptos sustentar toda la información que hay en X, esto nos obliga a tener
de álgebra lineal que necesitamos calcular a partir de la matriz que crear una segunda variable sintética, que como antes indicamos le
de covarianza para determinar los componentes principales de los llamaremos componente 2 o C2 y así sucesivamente: C3 , C4 ...
datos. Antes de llegar a la explicación de estos conceptos, primero En la etapa que llamaremos k, se construye el componente principal
comprendamos qué entendemos por componentes principales. k-ésima que sustituye el 1: C K = ak1 X 1 + ... + akj X j + ...akm X m Si
lo vemos como matriz, sería: C k = Xak .

4
calcular sus correlaciones.
 
a y1 − y
 
 k1   σy 
 ..   .. 
 .   . 
   
k
 
a =  akj 

 (3)  y −y 
yc =  2  (7)
 .   σy 
 .   . 
 .   . 
 . 
   
akm yn −y
σy

Donde ak es el k-ésimo factor y akj es quien indica cuánto valor Las correlaciones pueden ser interpretadas de la siguiente manera:
aporta cada variable a la construcción del componente. Unos van a
1. Si la suma de las correlaciones de X j al cuadrado están cercanas
ser negativos y otros positivos, su peso solo es importante respecto
a 1, hay una correlación fuerte con los componentes o alguno de
al peso de los otros componentes, para mantener la ortogonalidad
ellos, pero la correlación con los otros va a ser débil.
de la transformación se ponen restricciones, como por ejemplo:
∑m 2
j=1 ( akj ) = 1
0
2. Si por ejemplo, el ángulo entre X j y X j es cercano a los 90 grados
entonces no hay correlación entre ellas.
En el ACP se reducen las variables y se busca la correlación 0
de las mismas, para esto debe sacarse la varianza, covarianza. Por 3. Si X j y X j se encuentran opuestas al vértice origen, hay una
ejemplo: V = n1 X t X, la cual sería la matriz de dicha varianza- correlación fuerte y negativa entre ellas.
covarianza, a esta operación se le denomina, extracción de valores. En el ACP se utilizan distintos gráficos que ayudan a representar
Quedando esta matriz de correlaciones: detalles sumamente relevantes en el análisis del método. Los gráficos
principales son: Círculo de correlaciones, Gráfico de sedimentación
cov( X I X J )
vij = = R( X I X J ) (4) y Plano de componentes principales. A continuación se explica el
σx I x J objetivo de estas 3 visualizaciones.
Entonces la fila de X en R es el espacio de individuos en el centro de la
nube de puntos. Para calcular las correlaciones se puede implementar 7.1 Círculo de correlaciones
este ejemplo: El círculo de correlaciones ayuda a visualizar la relación existente
  √  que tienen las variables entre sí en nuestro conjunto de datos. En
R( X 1 , Cr ) Br a1r una investigación elaborada por el Tecnológico de Costa Rica (TEC)

 ..

  .. 
  se define que: “Los círculos de correlaciones son obtenidos a partir
 .   .  de las correlaciones entre las variables originales y las componentes
 √
  q 
 R( X j , Cr )  = Br · ay =  Br ar  =
   principales normalizadas.” (Allan Jimenez, 2012). Tomando este
j (5)
   círculo como referencia para la explicación de los ejemplos abajo,

 .. 
  .. 
 
cada punto hace referencia a una variable (ejemplo: Period Deaths o
 .   . 
  
√ r
 Net int. Migration):
R( X m , Cr ) Br am

• ar es el r-ésimo vector propio de R = n1 X t X asociado a r. Fig. 2. Círculo de correlaciones - Period Deaths o Net int. Migration

• Por dualidad, para calcular las correlaciones se puede diagonalizar


la matriz. Suponiendo que X ya ha sido reducida, Z = X t .

Entonces, Rs =Zas , as es el vector propio de H = n1 X t X por lo tanto:


Ris = a1s Zij + ... + asn Zin o también puede ser representado como
Ris = ∑nj=1 Zi jasj . Cuando se trabaja ACP con varianzas se debe
identificar y eliminar valores atípicos, los cuales son más fáciles de
identificar gráficamente, en algunos casos se debe conocer la relación
y observar la distancia entre un punto y la media.

Una variable suplementaria:


 
yk1
 
 .. 
 . 
 
 
y=
 y2 
 (6)
 . 
 .  Fuente: XLSTAT
 . 
 
yn • Si las variables están próximas entre ellas, es decir, si están lejos
del centro, pero pegadas entre sí significa que están positivamente
Debe centrarse y reducirse a sí misma primeramente, para luego poder correlacionadas.

5
• Si son ortogonales significa que no están correlacionadas. 8 Aplicación del ACP en código Python

• Si están en lados opuestos con respecto al centro significa que Para iniciar con nuestro algoritmo, importaremos las librerías nece-
están negativamente correlacionadas. sarias para desarrollarlo. Cabe mencionar que antes de importar la
librería mglearn se debe instalar en nuestro IDE (pip install mglearn).

7.2 Gráfico de sedimentación • sklearn nos ayudará a entrenar nuestro modelo.

El gráfico de sedimentación revela el nivel óptimo en la cantidad de • glearn nos permitirá visualizar gráficamente los componentes
componentes principales que deben ser seleccionados para la reduc- principales.
ción de dimensionalidad de un conjunto de datos. Los elementos que • Con pandas nos ayudaremos con la manipulación de los datos en
tendremos en este gráfico serán los componenetes originales (sin la nuestro conjunto de datos. A este conjunto le llamaremos Data
aplicación de la reducción de dimensionalidad) en el eje x y en el eje Frame.
y tendremos los valores propios de cada componente. Con el fin de
visualizar de manera directa los componentes más relevantes se ordena • numpy para el manejo de matrices numéricas.
de mayor a menor según la magnitud de cada uno. A continuación, se
visualiza un ejemplo de un gráfico de sedimentación: • matplotlib y seaborn para la visualización de datos.

• ACP para obtener nuestros componentes principales de nuestra


Fig. 3. Gráfico de sedimentación - Minitab matriz de datos.

1 import sklearn
2 import mglearn
3 import pandas as pd
4 import numpy as np
5 import matplotlib.pyplot as plt
6 import seaborn as sns
7 %matplotlib inline
8 from sklearn.decomposition import PCA

Buscaremos implementar el ACP con el siguiente Data Frame:


Fuente: Minitab.
Fig. 5. Consumo (CON), Potencia (POT), Cilindrada (CIL), Acel-
eración (ACE), Velocidad (VEL), Peso (PESO) y Seguridad (SEG
7.3 Plano de componentes principales
El plano de componentes principales es un gráfico que permite
visualizar el resultado de la reducción de dimensionalidad aplicando el
ACP sobre nuestros datos. Supongamos que tenemos un conjunto de
datos de 13 variables y n observaciones. Por supuesto que gráficar
13 variables en un gráfico es tarea imposible, asimismo, el ACP
lo que buscará será reducir esas 13 variables a 2 (para efectos de
nuestro ejemplo), con el fin de encontrar las variables más relevantes
en el conjunto de datos. Anteriormente, vimos como obtener los
componentes principales por lo que ahora necesitamos gráficar en un
plano de 2 dimensiones (plano de componentes principales) nuestro
resultado una vez obteniendo nuestros 2 componentes.

A continuación se expone un ejemplo de un plano de componentes


principales:
Fuente: (2021) Ciencia de Datos. Carlos González.

Fig. 4. Plano de componentes principales - Minitab


Lo primero que podemos identificar es que existen valores atípicos en
nuestros datos, tales son la línea 4, 6 y 15 con automóviles altamente
costosos y alejados del grupo. "El método ACP es altamente sensible
a outliers, por lo que es altamente recomendable estudiar si los hay."
(Joaquín, Amat, 2017, p. 2). Por esta razón procedemos a eliminar los
valores atípicos, así como las variables no numéricas (ACP solo trabaja
con valores numéricos).

1 df = pd.read_excel(’/content/ACP.xlsx’)
2
3 df = df.drop([3,5,14],axis=0),
4 target = df.iloc[:,0]
Fuente: Minitab. 5

6
6 df = df.drop([’MODELO’], axis=1) 4 matriz_cov = np.cov(matriz.T)
7 df = df.drop([’SEG’], axis=1) 5
6 valores, vectores = np.linalg.eigh(matriz_cov)
7
Como vimos anteriormente, es sumamente importante visualizar las
8 proporcion = valores / np.trace(matriz_cov)
correlaciones que existen entre nuestras variables. Por ello utilizare-
mos el círculo de correlación (programado en R) para identificar cuales
Para visualizar de forma descendiente nuestro gráfico de sedimentación
variables tienen y no tienen relación entre ellas. Como se puede obser-
procedemos a ordenar de mayor a menor los valores que se encuentra en
var, muchas de nuestras variables poseen correlación entre ellas. No
la lista de proporción que se obtuvo de las líneas pasadas, de tal manera
obstante, la variable de aceleración tiene correlación negativa entre las
que podamos obtener el peso en porcentaje de nuestras componenentes
demás variables.
principales.
Fig. 6. Círculo de correlación - implementación con R
1 porcentaje = proporcion * 100 porcentaje
2 y = sorted(porcentaje,reverse=True)

Posteriormente nos ayudamos con matplotlib para visualizar nuestro


gráfico de sedimentación. Como podemos observar el gráfico de sed-
imentación nos muestra que el primer componente tiene un 97.1%
en la variación de nuestros datos. El segundo componente solamente
toma el 2.3% en la variación de los datos. Los demás componentes
tienen a formar una línea cercana a 0% por lo cuál, para efectos de
nuestro análisis utilizaremos los dos primeros componentes como las
principales (esto porque tienen más variación) que caracterizan nuestro
Data Frame.

1 fig, ax = plt.subplots(figsize=(10,5),dpi=100)
2 plt.plot([’CP1’,’CP2’,’CP3’,’CP4’,’CP5’, ’CP6’], y,
color=’black’, marker = ’x’, linewidth=1,
markersize=4)
3 ax.set(title=’ G r f i c o de sedimentaci n’,xlabel=’
Componentes principales’,ylabel=’Porcentaje de
Fuente: Elaboración propia. v a r i a c i n ’)

Con el fin de observar los niveles de correlación entre nuestras variables


en forma de matriz, procederemos con las siguientes líneas de código: Fig. 8. Gráfico de sedimentación para el ACP

1 corr = df.corr(method=’pearson’)
2
3 plt.figure(figsize=(16,8))
4 sns.heatmap(corr,xticklabels=corr.columns,
yticklabels=corr.columns,
5 cmap=’RdBu_r’, annot=True, linewidth=0.5)
6 plt.title(’Matriz de correlaci n’)

Fig. 7. Matriz de correlación


Fuente: Elaboración propia.

Con el ACP de scikit-learn le indicamos a nuestro algoritmos que quer-


emos reducir nuestro Data Frame a 2 componentes principales y pos-
teriormente, procedemos a entrenar el modelo, con el fin transformar
nuestro Data Frame inicial a solamente una matriz con 2 dimensiones.

1 pca = PCA(n_components=2)
2 pca.fit(df)
3

Fuente: Elaboración propia. 4 df_transform = pca.transform(df)

Esta línea de código nos servirá para manipular más fácilmente desde
Las siguientes líneas de código nos permitirán definir nuestra matriz
un Data Frame las columnas que deseamos graficar en el plano de
de covarianza, para luego poder obtener los vectores propios y valores
componentes principales.
propios, así como proporción de nuestros datos.

1 new_df = pd.DataFrame(df_transform,columns=[’CP1’,’
1 n = df.shape[0] CP2’])
2 matriz = np.array(df) 2 new_df = new_df.assign(Target=target)
3

7
Por último, graficamos nuestro plano de componentes principales y https://www.bbvaopenmind.com/tecnologia/inteligencia-artificial/el-
esto nos permitirá observar como nuestros datos interactúan en un verdadero-padre-de-la-inteligencia-artificial/
plano de 2 dimensiones.
Gonzalez, C. (s.f.). ¿Qué es el Deep Learning y para qué sirve?. Indra.
1 fig, ax = plt.subplots(figsize=(10,5),dpi=100) Recuperado de: https://bit.ly/3lcn8d7.
2 mglearn.discrete_scatter(new_df.iloc[:,0],new_df.
iloc[:,1],new_df.index,s=20) Hao, K. (2020, noviembre). “El aprendizaje profundo va a ser capaz
3 plt.legend(new_df.iloc[:,2]) de hacer cualquier cosa”. MIT Technology Review. Recuperado de:
4 ax.set(title=’Visualizaci n del A n l i s i s de los
Componentes’, xlabel=’CP 1’, ylabel=’CP 2’) https://bit.ly/38mEaS2.

Martín, P. G., de Pascual, A. D., Lezama, E. T., Olmos, E. G.


Fig. 9. Plano de componentes principales (1994). Una aplicación del análisis de componentes principales
en el área educativa. Economía, 19(9), 55-72. Recuperado de:
https://bit.ly/3dusKwP

Jaadi, Z. (2021, March 25). A Step-by-Step Explanation of Principal


Component Analysis. Built In. Recuperado de: https://builtin.com/data-
science/step-step-explanation-principal-component-analysis

Joaquín Amat, R. (2017, junio). Análisis de Componentes Principales


(Principal Component Analysis, PCA) y t-SNE. Ciencia de Datos.
Recuperado de: https://bit.ly/3m1ybHh.
Fuente: Elaboración propia.
Pyle, D. & San José C. (2015, junio). An executive’s guide
to machine learning. McKinsey & Company. Recuperado de:
9 Conclusiones https://mck.co/2GElJge.
En esta publicación se repasaron los principales conceptos del Recuero de los Santos, P. (2018, junio). Python para todos : ¿Qué es el
Análisis de Componentes Principales, se profundizó desde una visión análisis de Componentes Principales o PCA?. Think Big. Recuperado
matemática y programática con el objetivo asentar una relación de: https://bit.ly/3cvo7TP.
didáctica aplicativa. Como se expuso, el Análisis de Componentes
Principales es capaz de resumir una gran cantidad de datos mediante Sanchéz Mangas, A. (2015, abril). Análisis de Componentes
de la disminución de la dimensionalidad. La importancia de poder Principales: Versiones Dispersas y Robustas al Ruido Impulsivo.
reducir dimensiones en grandes cantidades es gigantezca, en diversas Recuperado de: https://bit.ly/3w1GpDX.
áreas de la ciencia y la industria. Los métodos presentados en esta
publicación nos permiten concluir que ACP en el análisis de datos y en ThinkingAllowedTv. [Thinking AllowedTv] (3 de noviembre de 2011).
Machine Learning, resulta indispensable para el tratamiento de los John McCarthy(1927-2011)[Thinking Allowed - Jeffrey Mishlove.
datos, más aún cuando se trata de Big Data. Recuperado de: https://www.youtube.com/watch?v=Ozipf13jRr4
Asimismo; concluimos que el Análisis de Componentes Princi-
pales es una herramienta perfeccionada y además que la incorporación
de sub-herramientas como el gráfico de sedimentación, el cual nos
permite conocer el nivel óptimo en la cantidad de componentes
principales que deben ser seleccionados para la reducción de
dimensionalidad de un conjunto de datos, o el círculo de correlación,
el cual nos permite observar los niveles de correlación entre nuestras
variables. Las aplicaciones del Análisis de Componentes Principales
puede variar de acuerdo a las necesidades, incluso, la herramienta
permite manipularle de tal manera que podamos programarla para
que resolver problemas específicos en nuestros análisis de datos, tal y
como se expuso en la aplicación del ACP en código Python.

10 Referencias
Alandete D.(26 de Octubre de 2011). John McCarthy, el ar-
ranque de la inteligencia artificial. El País. Recuperado de:
https://elpais.com/diario/2011/10/27/necrologicas/1319666402_850215.html

Jimenez, A. E. C. (30 de Mayo de 2012). Analisis de Componentes


Principales en Paralelo. Recuperado de: https://bit.ly/39kmDtl

Guillen, B. (4 de septiembre de 2016). El verdadero padre de


la inteligencia artificial. OpenMind BBVA. Recuperado de:

View publication stats

También podría gustarte