R kullanarak boyutsal küçültme için PCA vs t-SNE'nin nesi yanlış?


27

336x256 kayan nokta sayıları (336 bakteri genomu (sütunlar) x 256 normalleştirilmiş tetranükleotit frekansı (satır), örneğin her sütun 1'e kadar ekler) matrisine sahibim.

Analizimi prensip bileşen analizi kullanarak yaptığımda iyi sonuçlar alıyorum. Öncelikle, veri üzerindeki kmean kümelerini hesaplarım, daha sonra bir PCA çalıştırırım ve veri noktalarını başlangıçtaki 2 km'lik kümelemeye dayanarak 2D ve 3D olarak renklendiririm:

library(tsne)
library(rgl)
library(FactoMineR)
library(vegan)
# read input data
mydata <-t(read.csv("freq.out", header = T, stringsAsFactors = F, sep = "\t", row.names = 1))
# Kmeans Cluster with 5 centers and iterations =10000
km <- kmeans(mydata,5,10000)
# run principle component analysis
pc<-prcomp(mydata)
# plot dots
plot(pc$x[,1], pc$x[,2],col=km$cluster,pch=16)
# plot spiderweb and connect outliners with dotted line
pc<-cbind(pc$x[,1], pc$x[,2])
ordispider(pc, factor(km$cluster), label = TRUE)
ordihull(pc, factor(km$cluster), lty = "dotted")

görüntü tanımını buraya girin

# plot the third dimension
pc3d<-cbind(pc$x[,1], pc$x[,2], pc$x[,3])
plot3d(pc3d, col = km$cluster,type="s",size=1,scale=0.2)

görüntü tanımını buraya girin

Ancak PCA'yı t-SNE yöntemiyle değiştirmeye çalıştığımda, sonuçlar çok beklenmedik görünüyor:

tsne_data <- tsne(mydata, k=3, max_iter=500, epoch=500)
plot(tsne_data[,1], tsne_data[,2], col=km$cluster, pch=16)
ordispider(tsne_data, factor(km$cluster), label = TRUE)
ordihull(tsne_data, factor(km$cluster), lty = "dotted")

görüntü tanımını buraya girin

plot3d(tsne_data, main="T-SNE", col = km$cluster,type="s",size=1,scale=0.2)

görüntü tanımını buraya girin

Buradaki sorum, kmean kümelenmesinin neden t-SNE'nin hesapladığından çok farklı olduğu. Kümeler arasında PCA'nın yaptıklarından daha iyi bir ayrılık olmasını beklerdim ama bana neredeyse rastgele görünüyordu. Bunun neden olduğunu biliyor musun? Ölçeklendirme adımını mı yoksa bir tür normalleşmeyi mi özlüyorum?


4
Lütfen PCA ile de sık sık elde ettiğiniz gibi "iyi" sonuçlar alamayacağınızı unutmayın. Birçok özelliğe kümelemek ve daha sonra sadece birkaç ilk bilgisayarın alt uzayında kümeleri yansıtmak, burada PC'nizin hemen hemen tüm değişkenliğini yakalamadığı sürece, t-SNE için elde ettiğiniz bir resmi gösterebilir. Karşılaştırma yaptınız mı - ilk 3 PC'niz ve ilk 3 t-SNE boyutunuzda değişkenliğin hangi kısmını yakaladınız?
ttnphns

2
Daha önemsiz, daha fazla yineleme denediniz mi?
Kasım’da

2
2000'e kadar olan yinelemelerle oynamıştım ve ayrıca çeşitli şaşkınlık ayarlarıyla oynadım, ancak PCA'nın gösterdiği performansa yakın bir şey görmedim.
Loddi

1
Şaşkınlığı düzeltmeyi denedin mi?

1
tSNE, verileriniz arasındaki KL ayrışmasını orijinal ve yansıtılan boyutlarında en aza indiren teorik bir optimum şaşkınlığa sahiptir. Önce şaşkınlığı bulmak için bir şebeke araştırması yaptınız mı? Örneğin 10,20,30,40, vb.
Alex R.

Yanıtlar:


10

Kullanmadan TSNEönce ne yaptığını anlamalısınız .

Mesafeye bağlı olarak özellik vektörleri arasında bir komşuluk grafiği çizerek başlar .

Grafik bir düğümü (özellik vektörü) nen yakın düğümlerine (özellik boşluğundaki uzaklık cinsinden ) bağlar . Buna parametre ndenir perplexity.

Bu grafiğin oluşturulmasının amacı TSNE'nin örnekleme türüne dayanmasıdır. TSNE, özellik vektörlerinizin yeni gösterimini oluşturmaya dayanır.

TSNE modelinizin bir dizisi random walk, TSNE özellik grafiğinizde bir kullanılarak oluşturulur .

Tecrübelerime göre ... sorunlarımın bir kısmı, özellik gösteriminin bu grafiğin oluşumunu nasıl etkilediğine dair akıl yürütmeden geldi. Ayrıca perplexityörneklememin ne kadar odaklandığını etkilediği için parametre ile de oynarım .


9

Bu yaklaşımları karşılaştırmak zor.

PCA parametre içermez. Veriler göz önüne alındığında, sadece ana bileşenlere bakmak zorunda.

Öte yandan, t-SNE ciddi parametrelere dayanmaktadır: şaşkınlık, erken abartı, öğrenme oranı, yineleme sayısı - varsayılan değerler genellikle iyi sonuçlar verse de.

Bu yüzden sadece bunları karşılaştıramazsınız, PCA'yı t-SNE ile elde edebileceğiniz en iyi sonuçla (veya birkaç t-SNE denemesiyle elde ettiğiniz en iyi sonuç) karşılaştırmanız gerekir. Aksi halde, "doğrusal modelim neden (ayarlanmamış) degrade yükseltme modelimden daha iyi performans gösteriyor?" Sorusunu sormaya eşdeğer olur.


3

PCA'nın yerini almak için bir veri setinde t-sne kullandım ve (Rum Wei'nin fark ettiği hataya rağmen) daha iyi sonuçlar aldım. Benim uygulama durumumda kaba pca iyi çalıştı, kaba t-sne ise bana rasgele görünen sonuçlar verdi. Bu, pca'da bulunan ölçeklendirme / merkezleme adımından kaynaklanıyordu (varsayılan olarak çoğu pakette), ancak t-sne'de kullanılmıyordu.
Meselelerim alanlardı ve aralarındaki mesafe, önceki ölçeklendirme olmadan çok az anlam ifade ediyordu, beni “rastgele görünmekten” “anlamlandırmak” için aldı.

RUser4512'nin dediği gibi, parametrelerinizi de test etmek isteyebilirsiniz. Onun üzerinde web , yazar, o da o kadar büyük bir şaşkınlık size (bilmek iyidir) noktalarının neredeyse homojen bir küre verecektir uyardı (sizinki oldukça küçük görünüyor) 5 ile 50 arasında bir karışıklık önerir.

Distill'in çok hoş biri var parametrelerin etkisini anlamada gerçekten yardımcı olan bazı etkileşimli görselleştirmelerle makaleye sahip.


0

PCA ve SVD gibi yöntemler arasında tSNE'li önemli bir fark, tSNE'nin doğrusal olmayan bir ölçek kullanmasıdır. Bu, genellikle görsel olarak daha dengeli olan, ancak PCA için yaptığınız gibi yorumlama konusunda dikkatli olunan arazileri oluşturur. Muhtemelen bu fark, yukarıda gösterilen araziler arasındaki farkı açıklar.

TSNE'nin doğrusal olmayan ölçeğinin yorumlanması hakkında daha fazla ayrıntı için aşağıdaki makaleye bakın: https://distill.pub/2016/misread-tsne/ ( Wattenberg , vd., "T-SNE Etkili Olarak Nasıl Kullanılır", Distill, 2016. http://doi.org/10.23915/distill.00002 )

PCA verilerinde farklı olmadığı için tSNE verilerinin "kümeleri" karıştırması beklenmez. Küme 2 ve 4'teki bazı noktalar, küme centroidinden örneğin kümeler arasındaki farktan daha uzaktır. Farklı bir k parametresiyle çok farklı kümeleme sonuçları elde edersiniz. 5 kümeyi kullanmak için belirli bir biyolojik gerekçeniz yoksa, grafik tabanlı veya denetimsiz bir hiyerarşik kümeleme yaklaşımı kullanmanızı öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.