T-SNE ile ilgili sorun, mesafeleri veya yoğunluğu korumamasıdır. Sadece bir dereceye kadar en yakın komşuları korur. Fark ince, ancak herhangi bir yoğunluk veya mesafe tabanlı algoritmayı etkiler.
Bu etkiyi görmek için, sadece çok değişkenli bir Gauss dağılımı oluşturun. Bunu görselleştirirseniz, çok uzaktaki bazı ayraçlarla birlikte, yoğun ve dışarıdan çok daha az yoğunlaşan bir topunuz olacaktır.
Şimdi bu veri üzerinde t-SNE'yi çalıştırın. Genellikle düzgün bir yoğunlukta bir daire elde edersiniz. Düşük bir şaşkınlık kullanırsanız, orada bazı garip desenleri bile olabilir. Ama artık aykırı şeyleri gerçekten anlatamazsın.
Şimdi işleri daha karmaşık hale getirelim. Normal dağılımda (-2,0) 250 puan, normal dağılımda (-2.0) 750 puan kullanalım.
Bunun EM gibi kolay bir veri kümesi olması gerekiyordu:
T-SNE'yi 40 varsayılan sapma ile çalıştırırsak, garip şekilli bir desen elde ederiz:
Fena değil, aynı zamanda kümelenmesi de o kadar kolay değil, değil mi? Burada tam olarak istediğiniz şekilde çalışan bir kümeleme algoritması bulmakta zorlanacaksınız. Ve insanlardan bu verileri kümelemesini isteseniz bile, büyük olasılıkla burada 2'den fazla küme bulacaklardır.
T-SNE'yi 20 gibi çok küçük bir şaşkınlıkla çalıştırırsak, var olmayan bu kalıplardan daha fazlasını elde ederiz:
Bu, örneğin DBSCAN ile kümelenecek, ancak dört küme verecek. Bu yüzden dikkatli olun, t-SNE "sahte" desenler üretebilir!
Optimum şaşkınlık bu veri seti için 80 civarında bir yer gibi gözüküyor; ancak bu parametrenin diğer tüm veri kümeleri için çalışması gerektiğini düşünmüyorum.
Şimdi bu görsel olarak hoş, ancak analiz için daha iyi değil . Bir insan noteri muhtemelen bir kesim seçip düzgün bir sonuç alabilir; k-aracı bu çok kolay senaryoda bile başarısız olur ! Yoğunluk bilgilerinin kaybolduğunu zaten görebiliyorsunuz , tüm veriler aynı yoğunlukta bir alanda yaşıyor gibi görünüyor. Bunun yerine şaşkınlığı daha da arttırırsak, bütünlük artar ve ayrılık tekrar düşer.
Sonuç olarak, görselleştirme için t-SNE kullanın (ve görsel olarak hoş bir şey elde etmek için farklı parametreler deneyin!), Ancak daha sonra özellikle kümelenmeyi çalıştırmayın , özellikle de bu bilginin kasıtlı olarak (!) Olduğu gibi mesafe veya yoğunluk tabanlı algoritmalar kullanmayın. kayıp. Mahalle grafiği temelli yaklaşımlar iyi olabilir, ancak önce t-SNE'yi önceden çalıştırmanız gerekmez, hemen komşuları kullanın (çünkü t-SNE bu nn grafiğini büyük ölçüde bozulmadan tutmaya çalışır).
Daha fazla örnek
Bu örnekler için hazırlanmıştır sunum (ama bulunamaz kağıt içinde daha sonra bu deneyi yaptığı gibi, henüz kağıt)
Erich Schubert ve Michael Gertz.
İçsel-Stokastik Komşu Görselleştirme ve Ölü Tespit Tespiti için Gömülü - Boyutluluk Lanetine Karşı Bir Çözüm?
In: 10. Uluslararası Benzerlik Arama ve Uygulamaları Konferansı (SISAP), Münih, Almanya. 2017
İlk önce, bu girdi verisine sahibiz:
Tahmin edebileceğiniz gibi, bu çocuklar için bir "renk beni" görüntüden türetilmiştir.
Bunu SNE'den geçirirsek ( t-SNE değil, önceki sürüm ):
Vay, balıklarımız oldukça deniz canavarı oldu! Çekirdek boyutu yerel olarak seçildiğinden, yoğunluk bilgilerinin çoğunu kaybederiz.
Ancak t-SNE'nin çıktısı sizi gerçekten şaşırtacak:
Aslında iki uygulamayı denedim (ELKI ve sklearn uygulamaları) ve ikisi de böyle bir sonuç üretti. Bağlantısız bazı parçalar, ancak her biri orijinal verilerle bir şekilde tutarlı görünüyor.
Bunu açıklamak için iki önemli nokta:
SGD yinelemeli bir iyileştirme prosedürüne dayanır ve yerel optimuma sıkışabilir. Bu, özellikle, algoritmanın, yansıtılmış olan verinin bir bölümünü "çevirmesini" zorlaştırır, çünkü bu, ayrı olması gereken başkaları arasında hareket eden noktaları gerektirir. Dolayısıyla, balığın bazı kısımları yansıtılmışsa ve diğer kısımları yansıtılmamışsa, bunu düzeltemeyebilir.
t-SNE, yansıtılan alandaki t-dağılımını kullanır. Düzenli SNE tarafından kullanılan Gauss dağılımının aksine, bu, çoğu noktanın birbirini iteceği anlamına gelir , çünkü bunlar giriş alanındaki 0 yakınlığına sahiptir (Gaussian hızlı bir şekilde sıfır alır), ancak çıktı alanındaki> 0 yakınlığına sahiptir. Bazen (MNIST'te olduğu gibi) bu daha güzel görselleştirme yapar. Özellikle, bir veri kümesini girdi alanından biraz daha fazla "bölmeye" yardımcı olabilir . Bu ilave itme, çoğu zaman, noktaları istenen bir şekilde kullanmanın daha düzgün bir şekilde kullanılmasına neden olur. Ancak burada bu örnekte, itici etkiler aslında balık parçalarının ayrılmasına neden olur.
Biz (bu konu hakkında yardımcı olabilir oyuncak (genellikle T-SNE ile kullanıldığı gibi) yerine rasgele koordinatları daha ilk kez yerleştirildiğinde orijinal koordinatlar kullanılarak veri setinin) ilk konu. Bu kez, görüntü ELKI yerine sklearn, çünkü sklearn sürümü zaten başlangıç koordinatlarını geçmek için bir parametreye sahipti:
Gördüğünüz gibi, "mükemmel" ilk yerleşimde bile, t-SNE, balıkları başlangıçta bağlanmış olan birkaç yerde "kıracak" çünkü çıktı alanındaki Student-t itmesi girdideki Gaussian afinitesinden daha güçlü alan, boş yer, mekan.
Gördüğünüz gibi, t-SNE (ve SNE de!) İlginç görselleştirme teknikleridir ancak dikkatle ele alınmaları gerekir. Sonuçta K-aracı kullanmamayı tercih ederim! çünkü sonuç ağır şekilde çarpıtılır ve mesafeler veya yoğunluk iyi korunmaz. Bunun yerine, görselleştirme için kullanmak yerine.