t-SNE dengan variabel kontinu dan biner campuran

10

Saat ini saya sedang menyelidiki visualisasi data dimensi tinggi menggunakan t-SNE. Saya punya beberapa data dengan variabel biner campuran dan kontinu dan data tersebut tampaknya terlalu mudah mengelompokkan data biner. Tentu saja ini diharapkan untuk data berskala (antara 0 dan 1): jarak Euclidian akan selalu terbesar / terkecil di antara variabel-variabel biner. Bagaimana seharusnya seseorang berurusan dengan kumpulan data biner / berkelanjutan menggunakan t-SNE? Haruskah kita menjatuhkan kolom biner? Adakah yang berbeda yang metricbisa kita gunakan?

Sebagai contoh, pertimbangkan kode python ini:

x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]

X = np.c_[x1, x2, x3]

# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph

jadi data mentah saya adalah:

data mentah

di mana warna adalah nilai dari fitur ketiga (x3) - dalam 3D titik data berada dalam dua bidang (x3 = 0 bidang dan x3 = 1 bidang).

Saya kemudian melakukan t-SNE:

tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)

dengan plot yang dihasilkan:

tsne_data

dan data tentu saja telah dikelompokkan oleh x3. Naluri saya adalah bahwa karena metrik jarak tidak terdefinisi dengan baik untuk fitur-fitur biner, kita harus menjatuhkannya sebelum melakukan t-SNE, yang akan memalukan karena fitur-fitur ini mungkin mengandung informasi yang berguna untuk menghasilkan kluster.

FChm
sumber
1
Catatan: Saya masih tertarik mendengar komentar tentang ini dan juga tentang penerapan UMAP ke ruang ini.
FChm
Terima kasih atas hadiahnya, sekali lagi masih tertarik tetapi belum menghabiskan banyak waktu untuk melihat ini adil. Saya mungkin punya waktu hari ini untuk melakukan riset awal dan akan menambahkan pembaruan jika berlaku.
FChm
2
Saya mengalami masalah ini dalam praktik. Saya pikir itu tidak spesifik untuk tSNE, tetapi akan sama-sama mempengaruhi algoritma pembelajaran tanpa pengawasan berbasis jarak (termasuk pengelompokan). Saya juga berpikir bahwa solusi yang tepat akan sangat tergantung pada apa yang diwakili fitur biner, dan pada beberapa penilaian ahli tentang seberapa penting mereka. Jadi saya mencari jawaban yang akan membahas berbagai kemungkinan situasi. Saya yakin tidak ada solusi satu ukuran untuk semua di sini.
amoeba

Jawaban:

8

Penafian: Saya hanya memiliki pengetahuan tangensial tentang topik tersebut, tetapi karena tidak ada orang lain yang menjawab, saya akan mencobanya

Jarak itu penting

Setiap teknik pengurangan dimensionalitas berdasarkan jarak (tSNE, UMAP, MDS, PCoA dan mungkin lainnya) hanya sebagus metrik jarak yang Anda gunakan. Seperti yang ditunjukkan @amoeba dengan benar, tidak mungkin ada solusi satu ukuran untuk semua, Anda harus memiliki metrik jarak yang menangkap apa yang Anda anggap penting dalam data, yaitu bahwa baris yang Anda anggap serupa memiliki jarak kecil dan baris yang Anda inginkan anggap berbeda punya jarak yang jauh.

Bagaimana Anda memilih metrik jarak yang baik? Pertama, izinkan saya melakukan sedikit pengalihan:

Pentahbisan

Jauh sebelum masa kejayaan pembelajaran mesin modern, ahli ekologi komunitas (dan kemungkinan besar yang lain) telah mencoba membuat plot yang bagus untuk analisis eksplorasi data multidimensi. Mereka menyebut proses penahbisan dan itu adalah kata kunci yang berguna untuk mencari dalam literatur ekologi kembali setidaknya ke tahun 70-an dan masih kuat sampai sekarang.

Yang penting adalah bahwa ahli ekologi memiliki kumpulan data yang sangat beragam dan berurusan dengan campuran fitur biner, bilangan bulat dan nilai nyata (misalnya ada / tidaknya spesies, jumlah spesimen yang diamati, pH, suhu). Mereka telah menghabiskan banyak waktu memikirkan jarak dan transformasi untuk membuat penahbisan bekerja dengan baik. Saya tidak memahami bidang dengan sangat baik, tetapi sebagai contoh review oleh Legendre dan De Cáceres Beta keragaman sebagai varians dari data komunitas: dissimilaritycoefficients dan partisi menunjukkan sejumlah besar kemungkinan jarak yang mungkin ingin Anda periksa.

Penskalaan multidimensi

Alat masuk untuk penahbisan adalah penskalaan multi-dimensi (MDS), terutama varian non-metrik (NMDS) yang saya anjurkan agar Anda coba selain t-SNE. Saya tidak tahu tentang dunia Python, tetapi implementasi R dalam metaMDSfungsi veganpaket melakukan banyak trik untuk Anda (misalnya menjalankan beberapa kali hingga menemukan dua yang serupa).

Ini telah diperdebatkan, lihat komentar: Bagian bagus tentang MDS adalah bahwa ia juga memproyeksikan fitur (kolom), sehingga Anda dapat melihat fitur mana yang mendorong pengurangan dimensi. Ini membantu Anda menafsirkan data Anda.

Perlu diingat bahwa t-SNE telah dikritik sebagai alat untuk memperoleh pemahaman lihat misalnya eksplorasi ini perangkapnya - Saya pernah mendengar UMAP memecahkan beberapa masalah, tetapi saya tidak memiliki pengalaman dengan UMAP. Saya juga tidak meragukan sebagian alasan para ahli ekologi menggunakan NMDS adalah budaya dan kelembaman, mungkin UMAP atau t-SNE sebenarnya lebih baik. Sejujurnya aku tidak tahu.

Meluncurkan jarak Anda sendiri

[0,1] terlepas dari jumlah fitur sementara besarnya jarak Euclidean mencerminkan jumlah fitur.

Sebuah kata peringatan

Setiap saat Anda harus ingat bahwa karena Anda memiliki begitu banyak tombol untuk disetel, Anda dapat dengan mudah jatuh ke dalam perangkap penyetelan sampai Anda melihat apa yang ingin Anda lihat. Ini sulit dihindari sepenuhnya dalam analisis eksplorasi, tetapi Anda harus berhati-hati.

Martin Modrák
sumber
1
+1. Banyak poin bagus di sini, dan saya suka referensi ke literatur "pentahbisan" yang lebih tua. Satu hal yang menarik perhatian saya: "Bagian yang menyenangkan tentang MDS adalah ia juga memproyeksikan fitur (kolom), sehingga Anda dapat melihat fitur mana yang mendorong pengurangan dimensi" - apakah Anda yakin tentang itu? Itu tidak benar, sejauh yang saya mengerti; setidaknya itu tidak lebih benar untuk MDS daripada untuk t-SNE.
amoeba
@amoeba Di sinilah pengetahuan saya yang terbatas masuk :-) Yang saya tahu adalah metode memplot standar untuk metaMDSplot sampel dan fitur (lihat mis. sketsa ini: cran.r-project.org/web/packages/vegan/vignettes/ intro-vegan.pdf )
Martin Modrák
Terima kasih atas jawaban dan wawasan Anda. Saya sekarang lebih fokus pada UMAP, dan saya pikir mendefinisikan beberapa ukuran kesamaan seperti jarak Jaccard mungkin cara yang baik untuk menangani tipe variabel campuran. Saya belum pernah menggunakan MDS, tetapi saya menyadarinya. Saya harus meluangkan waktu untuk memahami jika ini berguna.
FChm
1
@ MartinModrák Saya tidak tahu apa sebenarnya yang dilakukan veganpaket di sana, tetapi MDS / NMDS adalah metode nonlinear dan nonparametrik (persis seperti t-SNE), dan tidak ada cara "internal" untuk mencocokkan fitur asli dengan dimensi MDS. Saya bisa membayangkan bahwa mereka menghitung korelasi antara fitur asli dan dimensi MDS; jika demikian, ini bisa dilakukan untuk penyematan apa pun, termasuk t-SNE. Akan menarik untuk mengetahui apa yang sebenarnya vegandilakukannya.
amoeba