Perangkat lunak visualisasi untuk pengelompokan


14

Saya ingin mengelompokkan ~ 22.000 poin. Banyak algoritma pengelompokan bekerja lebih baik dengan tebakan awal kualitas yang lebih tinggi. Alat apa yang ada yang dapat memberi saya ide bagus tentang bentuk data yang kasar?

Saya ingin dapat memilih metrik jarak saya sendiri, jadi sebuah program yang saya dapat memberi makan daftar jarak berpasangan akan baik-baik saja. Saya ingin dapat melakukan sesuatu seperti menyorot suatu wilayah atau klaster pada layar dan mendapatkan daftar titik data mana di daerah itu.

Perangkat lunak bebas lebih disukai, tetapi saya sudah memiliki SAS dan MATLAB.

Jawaban:


11

GGobi (http://www.ggobi.org/), bersama dengan paket R rggobi, sangat cocok untuk tugas ini.

Lihat presentasi terkait untuk contoh: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf


Terima kasih atas sarannya, @Shane. ggobi terlihat menjanjikan, saya menginstalnya sekarang dan akan mencobanya :)

1
Berfungsi baik pada platform lain, tetapi GTK tidak bermain bagus dengan OSX.

3
GTK baik-baik saja di OSX.
Hadley

5

Menjelajahi hasil pengelompokan dalam dimensi tinggi dapat dilakukan di R menggunakan paket clusterfly dan gcExplorer . Cari lebih banyak di sini .


Terima kasih, tetapi apakah ada manfaat menggunakan clusterfly daripada memanggil ggobi secara langsung? Situs web hanya menyebutkan metode pengelompokan, yang menarik, tetapi belum menjadi tujuan utama saya. gcexplorer memiliki situs web yang kurang informatif, tetapi sepertinya itu untuk memvisualisasikan data setelah telah dipecah menjadi kelompok. Saya akan mencoba mereka begitu saya sampai di titik itu, tetapi bukan yang saya butuhkan saat ini.

4

(Berbulan-bulan kemudian), cara yang bagus untuk menggambarkan k-cluster dan untuk melihat efek dari berbagai k adalah dengan membangun Pohon Spanning Minimum dan melihat tepi terpanjang. Sebagai contoh,

teks alternatif

Di sini ada 10 kluster, dengan 9 ujung terpanjang 855 899 942 954 1003 1005 1069 1134 1267.
Untuk 9 kluster, tutup tepi cyan 855; untuk 8, ungu 899; dan seterusnya.

Algoritma single-link k-clustering ... tepatnya algoritma Kruskal ... setara dengan menemukan MST dan menghapus tepi paling mahal k-1.

- Wayne, Algoritma Greedy .

22000 poin, jarak 242M berpasangan, ambil ~ 1 gigabyte (float32): mungkin cocok.

Untuk melihat pohon atau grafik dimensi tinggi dalam 2d, lihat Penskalaan Multidimensi (juga dari Kruskal), dan literatur besar tentang pengurangan dimensi. Namun, dalam redup> 20 mengatakan, sebagian besar jarak akan dekat median, jadi saya percaya pengurangan dimensi tidak dapat bekerja di sana


2

Saya memiliki pengalaman yang baik dengan KNIME selama salah satu proyek saya. Ini adalah solusi yang sangat baik untuk penambangan eksplorasi cepat dan grafik. Selain itu ia menyediakan modul R dan Weka integrasi tanpa batas.


Sepertinya program yang bermanfaat, tetapi halaman web mereka tidak melakukan pekerjaan dengan baik meyakinkan saya itu akan menyelesaikan masalah yang tepat ini. Sepertinya terlalu luas, terlalu banyak fitur yang tidak saya pedulikan, membuatnya sulit untuk melakukan hal-hal sederhana. Saya akan memberikan pandangan lain jika pilihan lain tidak berhasil.


1

Lihatlah Cluster 3.0 . Saya tidak yakin apakah itu akan melakukan semua yang Anda inginkan, tetapi cukup baik didokumentasikan dan memungkinkan Anda memilih dari beberapa metrik jarak. Bagian visualisasi adalah melalui program terpisah yang disebut Java TreeView ( tangkapan layar ).


Terima kasih atas sarannya, tetapi kemampuan untuk memilih ukuran jarak saya sendiri sangat penting, jadi ini tidak akan berhasil bagi saya. Orang lain mungkin menganggapnya berguna.

1

GGobi memang terlihat menarik untuk ini. Pendekatan lain mungkin untuk memperlakukan kesamaan Anda / matriks jarak terbalik sebagai matriks jaringan adjacency dan memasukkannya ke dalam rutinitas analisis jaringan (misalnya, baik igraph di R atau mungkin Pajek). Dengan pendekatan ini saya akan bereksperimen dengan memotong jarak simpul menjadi ikatan biner di berbagai titik potong.


Saya memikirkan hal ini tetapi sepertinya tidak ada titik potong yang masuk akal, dan para pakar domain juga tidak dapat membenarkannya.

Saya akan berpikir ini bisa cukup sewenang-wenang untuk tujuan yang Anda nyatakan - jujur, Anda bahkan mungkin tidak perlu benar-benar dipotong menjadi biner, cukup tulis ulang label nilai dasi pada skala 1 ke beberapa angka yang dapat dikelola, kemudian semakin menyembunyikan / menunjukkan ikatan di berbagai tingkat (opsional juga menyembunyikan / menghilangkan segala liontin & anak yatim di sepanjang jalan). Tidak secara langsung menanggapi permintaan Anda seperti yang tertulis, tetapi mengapa tidak mengambil pendekatan yang lebih tipikal dan menggunakan metode clustering hybrid yang tidak menggunakan centroid awal untuk mengidentifikasi kluster awal, kemudian memberi makan centroid dari hasil itu ke dalam analisis baru Anda?
Shelby

Saya kira Anda bermaksud untuk mencoba berbagai cutoff sampai saya melihat beberapa hasil yang bagus? Saya ingin menghindari itu untuk beberapa alasan perbandingan standar. re: saran kedua Anda, saya rasa saya hanya mempercayai diri saya lebih baik daripada algoritma itu. Saya menggunakan komputer untuk memproses data dalam jumlah besar yang terlalu membosankan untuk dilakukan dengan tangan, bukan untuk menggantikan pemikiran saya.

1
Anda menggunakan bahasa pengujian hipotesis tetapi belum berbicara tentang pendekatan yang sangat eksploratif, tahu-kapan-Anda-lihat-itu @ pada waktu yang sama - jadi tidak jelas apa tujuan Anda sebenarnya untuk bagian analisis ini. Jika Anda memiliki hipotesis yang Anda uji nanti (misalnya memprediksi keanggotaan cluster atau menggunakan keanggotaan cluster sebagai prediktor) maka Anda dapat memilih untuk tidak melakukan hal-hal yang akan menggoda bias di sana. Tetapi masalah "perbandingan ganda" tidak benar-benar menentukan masalah eksplorasi yang Anda gambarkan. Pemutusan yaitu hanya untuk membantu Anda melihat apa yang ada di sana - tetapi kepercayaan Anda mungkin masih salah tempat.
Shelby

1

Weka adalah program open source untuk penambangan data (wirtten dan extensible di Jawa), Orange adalah program open source dan perpustakaan untuk penambangan data dan pembelajaran mesin (ditulis dengan Python). Keduanya memungkinkan eksplorasi visual data multidimensi yang nyaman dan efisien


Halaman fitur Orange mengatakan 'sedang dibangun' dan mereka tidak mencantumkan tangkapan layar seperti apa yang saya lakukan. weka tidak memiliki daftar fitur sama sekali. Mereka mungkin dapat melakukan apa yang saya inginkan, tetapi jika mereka tidak mempromosikan fitur, bagaimana saya bisa tahu. Saya lebih yakin dengan pilihan lain.

0

Perangkat lunak numerik gratis DataMelt termasuk perpustakaan Java yang disebut JMinHep. Silakan lihat manual di bagian "Pengelompokan data". Ini menyediakan GUI untuk memvisualisasikan titik data multidimensi di XY, dan menjalankan sejumlah algoritma pengelompokan data.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.