Програмне забезпечення для візуалізації для кластеризації


14

Я хочу кластеризувати ~ 22000 балів. Багато алгоритмів кластеризації працюють краще з початковими здогадами більш високої якості. Які існують інструменти, які можуть дати мені хороше уявлення про грубу форму даних?

Я хочу мати можливість вибирати власну метрику відстані, тому програма, для якої я можу подати список парних відстаней, була б просто чудовою. Мені хотілося б зробити щось на зразок виділити на дисплеї область чи кластер та отримати список, які точки даних є у цій області.

Вільне програмне забезпечення воліє, але в мене вже є SAS та MATLAB.

Відповіді:


11

GGobi (http://www.ggobi.org/) разом із пакетом Rggobi ідеально підходить до цього завдання.

Дивіться відповідні презентації для прикладів: http://www.ggobi.org/book/2007-infovis/05-clustering.pdf


Дякую за пропозицію, @Shane. ggobi виглядає багатообіцяюче, я зараз його встановлюю і спробую :)

1
Добре працює на інших платформах, але gtk не грає добре з OSX.

3
gtk чудово в OSX.
Хадлі

5

Дослідження результатів кластеризації у великих розмірах можна здійснити в R за допомогою пакетів clusterfly та gcExplorer . Шукайте більше тут .


Дякую, але чи є користь від використання clusterfly, а не прямого виклику ggobi? Веб-сайт лише згадує методи кластеризації, які цікаві, але поки не є моєю основною метою. gcexplorer має менш інформативний веб-сайт, але схоже, що він призначений для візуалізації даних після того, як він вже був розбитий на кластери. Я спробую їх, як тільки я дістанусь до цього моменту, але не те, що мені потрібно зараз.

4

(Місяці пізніше) хороший спосіб сфотографувати k-кластери та побачити ефект різних k - це побудувати дерево мінімального розмаху. і подивитися на найдовші краї. Наприклад,

alt текст

Тут є 10 скупчень, з 9 найдовших країв 855 899 942 954 1003 1005 1069 1134 1267.
Для 9 кластерів згорніть блакитний 855 край; для 8, фіолетовий 899; і так далі.

Алгоритм k-кластеризації з одним посиланням ... є саме алгоритмом Крускала ... рівнозначним пошуку MST та видаленню k-1 найдорожчих країв.

- Уейн, жадібні алгоритми .

22000 очок, 242М попарно, візьміть ~ 1 гігабайт (float32): можливо, підійде.

Щоб переглянути високомірне дерево або графік у 2d, див. Багатовимірне масштабування (також від Kruskal) та величезну літературу про зменшення розмірів. Однак, у dim> 20 скажімо, більшість відстаней буде близько медіани, тому я вважаю, що зменшення розмірів не може працювати там.


2

Я мав хороший досвід роботи з KNIME під час одного з моїх проектів. Це відмінне рішення для швидкого розвідувального видобутку та побудови графіків. Крім того, він забезпечує модулі R та Weka безперешкодної інтеграції.


Схоже на корисну програму, але їх веб-сторінка не дуже добре переконує, що вона вирішить цю точну проблему. Схоже, це може бути занадто широким, занадто багато функцій, які мені не цікаві, тому важко робити прості речі. Я дам йому ще один вигляд, якщо інші варіанти не вийдуть.


1

Погляньте на кластер 3.0 . Я не впевнений, чи буде це все, що ви хочете, але це досить добре задокументовано і дозволяє вибирати з кількох показників відстані. Візуалізація проходить через окрему програму під назвою Java TreeView ( скріншот ).


Дякую за пропозицію, але можливість вибору власної міри відстані є критичною, тому це не допоможе мені. Хтось ще може вважати це корисним.

1

GGobi виглядає цікаво для цього. Іншим підходом може бути трактування ваших матриць подібності / оберненої відстані як матриці суміжності з мережею та подача їх у процедуру аналізу мережі (наприклад, або igraph в R, або, можливо, Pajek). При такому підході я б експериментував із вирізанням відстані вузлів у бінарний зв’язок у різних точках вирізу.


Я думав про це, але, здається, немає розумної точки вирішення, і фахівці з домену також не можуть виправдати це.

Я думаю, що це може бути досить довільним для вашої заявленої мети - чесно, вам може навіть не знадобитися насправді розрізати на двійкові, просто перекодуйте мітку значення крапки в масштабі від 1 до деякого керованого числа, а потім поступово приховуйте / показуйте зв'язки на різні рівні (за бажанням також приховувати / виключати підвіски та сиріт по дорозі). Не відповідаючи безпосередньо на ваш запит, як написано, але чому б не скористатися більш типовим підходом і не використовувати гібридний метод кластеризації, який не використовує початкові центроїди для ідентифікації попередніх кластерів, а потім подавати центроїди з цього результату у ваш новий аналіз?
Шелбі

Я здогадуюсь, ти маєш намір спробувати багато різних відсічок, поки я не побачу приємних результатів? Я хочу цього уникнути із стандартних причин численних порівнянь. re: ваша друга пропозиція, я думаю, я просто довіряю собі краще, ніж ці алгоритми. Я використовую комп’ютер, щоб обробляти великі обсяги даних, занадто виснажливі, щоб робити вручну, щоб не замінити своє мислення.

1
Ви користуєтесь мовою тестування гіпотез, але все-таки говорите про дуже дослідницький підхід "знаю, коли ти бачиш" @ той самий час - тому незрозуміло, яка твоя мета насправді є для цієї частини аналізу. Якщо у вас є гіпотези, які ви протестуєте пізніше (наприклад, передбачення членства в кластері або використання членства в кластері в якості прогноктора), ви можете вирішити не робити те, що спокусить упередження. Але питання "багаторазового порівняння" насправді не входить в дослідницьку проблему, яку ви описуєте. Вирізання саме для того, щоб допомогти вам побачити, що там є, - але ваша довіра все ж може бути втрачена.
Шелбі

1

Weka - програма з відкритим кодом для майнінгу даних (wirtten та розширювана на Java), Orange - програма з відкритим кодом та бібліотека для видобутку даних та машинного навчання (написана Python). Вони дозволяють зручно та ефективно візуально досліджувати багатовимірні дані


На сторінці функцій Orange написано "будується", і вони не перелічують скріншоти, як те, що я роблю. У weka взагалі немає списку функцій. Вони можуть бути в змозі робити те, що я хочу, але якщо вони не просувають функцію, як я можу розповісти. Мене більше переконують інші варіанти.

0

Безкоштовне числове програмне забезпечення DataMelt включає бібліотеку Java під назвою JMinHep. Будь ласка, подивіться посібник у розділі "Кластеризація даних". Він надає графічний інтерфейс для візуалізації багатовимірних точок даних у XY та запуску ряду алгоритмів кластеризації даних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.