Aplicar PCA al dataset de proteínas

Autor: | Última modificación: 16 de abril de 2024 | Tiempo de Lectura: 2 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el ejemplo de hoy vamos a aplicar PCA al dataset de proteínas, con el que ya hemos trabajado anteriormente.

Recordemos que el PCA o análisis de componentes principales es una técnica estadística de aprendizaje no supervisado utilizada en machine learning para, entre otras cosas, reducir la dimensionalidad, analizar una matriz de covarianza, hacer un análisis de componentes del dataset original para determinar el número de componentes de un determinado conjunto de datos, etc.

Aplicar PCA al dataset de proteínas

Vamos a aplicar PCA al dataset de proteínas:

#Aplicar PCA al dataset de proteínas
mouse <- read.csv ("data/Data_Cortex Nuclear.csv")
mouse data <- mouse [ , 2 : 78]
for (i in 1 : ncol (mouse_data)) {

mn <- mean (mouse_data [ , 1], na.rm = T)
sd <- sd (mouse _data [ , 1], na.rm = T)
mouse_data [is.na (mouse_data[ , 1]), 1] <- mn

mouse_data [ , 1] <- (mouse_data [ , 1] -mn) / sd
}

dim (mouse_data)

1080 . 77

Tenemos, pues, 77 columnas y 1080 componentes.

#Aplicar PCA al dataset de proteínas
#Utilizamos prcomp para calcular el pca
prmouse_data <- prcomp (mouse_data, center = FALSE, scale = FALSE)
#Comprobamos que los 28 primeros autovalores contienen aproximadamente el 90% de la varianza
plot (cumsum (prmouse_data$sdev ^ 2 / sum (prmouse_data$sdev ^ 2)), main = "Autovalores")
grid()
Aplicar PCA al dataset de proteínas

De las 77 muestras, de manera general, podríamos decir que para alcanzar alrededor de un 90% de varianza tenemos que llegar a más o menos 20 autovalores.

Vamos a quedarnos con tres componentes principales y vamos a pintarlos:

#Aplicar PCA al dataset de proteínas
head (mouse)
prmouse_data_pca <- as.data.frame (prmouse_data$x[ , c ("PC1", "PC2", "PC3")])
prmouse_data_pca$cl <- mouse [ , "class"]
prmouse_data_pca$Genotype <- mouse [ , "Genotype"]
prmouse_data_pca$Treatment <- mouse [ , "Treatment"]
library (ggplot2)
ggplot (prmouse_data_pca, aes (x = PC2, y = PC3, color = Treatment)) + geom_point () ggplot (prmouse_data_pca, aes (x = PC1, y = PC2, color = Genotype)) + geom_point ()
Aplicar PCA al dataset de proteínas
Aplicar PCA al dataset de proteínas

Vamos a probar a hacer un k-means con solo dos dimensiones del PCA:

#Aplicar PCA al dataset de proteínas
mouse_data14 <- prmouse_data$x [ , 1 : 2]
q <- c ()
for (k in 1 : 20) {
myclust <- kmeans (mouse_data14, k)
q [k] <- myclust$betweenss / myclust$totss
}
plot (q)
Aplicar PCA al dataset de proteínas

Ahora haremos un clustering a partir de 10 muestras y dos componentes principales:

#Aplicar PCA al dataset de proteínas
set.seed (123)
myclustpca <- kmeans (mouse_data14, 10)
myclust <- kmeans (mouse_data, 10)

table (mouse$class, myclustpca$cluster)
table (mouse$class, myclustscluster)
table (mouse$Behavior, myclustpca$cluster)
table (mouse$Behavior, myclust$cluster)

plot (prmouse_data$x [ , c(1, 2)], col = myclustpca$cluster)
text (x = myclustpca$centers [ , 1], y = myclustpca$centers [ , 2], cex = 1, pos = 4, labels = (1 : nrow (myclustpca$centers)), col = "blue")
12345678910
c-CS-m111101353219311117
c-CS-s2230402026222315
c-SC-m059212211500032
c-SC-s021711271300155
t-CS-m400001115925305
t-CS-s33310116619206
t-SC-M02928302500041
t-SC-s015131233410228
12345678910
c-CS-m43162351117110024
c-CS-s2422290328001514
c-SC-m01003131170700
c-SC-s125010230701500
t-CS-m12383802000045
t-CS-s111841301100021
t-SC-M1000342010481300
t-SC-s261408218544018
12345678910
C / S10617117178360978443
S / C012457747367103156
12345678910
C / S90941318165611015104
S / C4829083762919379018
Aplicar PCA al dataset de proteínas

¿Quieres seguir aprendiendo?

Una vez abordada esta temática, podemos darnos cuenta de que al aplicar PCA al dataset de proteínas vemos y practicamos muchos conceptos diferentes. Si te gustaría profundizar en ellos, podrás lograrlo por medio de nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Con esta formación intensiva podrás adquirir todos los conocimientos necesarios para convertirte en un gran profesional e incursionar rápidamente en un mercado laboral lleno de oportunidades. ¡Anímate y solicita más información!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado