Кластеризація розподілів


10

У мене є кілька розподілів (10 малюнків на малюнку нижче). дистрибуції

Насправді це гістограми: на осі x є 70 значень, що є розмірами деяких частинок у розчині, і для кожного значення x відповідне значення y - це частка частинок, розмір яких становить приблизно значення x.

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

Відповіді:


16

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

Отже, підготуйте дані у такій формі, як (A, B, ... і т.д. - розподіли)

Value CumProp_A CumProp_B ...
1       .01       .05
2       .12       .14
...     ...       ...
70      1.00      1.00

і обчислити матрицю відстані між розподілами. Надішліть ієрархічну кластеризацію (рекомендую повний метод зв’язку). Яка відстань? Ну а якщо ви думаєте, що дві кумулятивні криві сильно відрізняються, якщо вони далекі один від одного лише на одне значення ( b ), використовуйте відстань Чебишева. Якщо ви вважаєте, що дві кумулятивні криві сильно відрізняються лише в тому випадку, якщо одна стабільно розташована над іншою в широкому діапазоні значень ( с ), використовуйте дистанцію автокореляції. У випадку, якщо якісь локальні відмінності між кривими важливі ( a ), використовуйте відстань на Манхеттені.

введіть тут опис зображення

PS Автокореляційна відстань - це лише ненормований коефіцієнт автокореляції різниць між кумулятивними кривими X і Y:

i=2N(XY)i(XY)i1


Відмінно - велике спасибі! Я зроблю це завтра
Stéphane Laurent

Автокорреляційна відстань, можливо, негативна. Це дійсно гарне визначення?
Стефан Лоран

Я забув задати ще одне запитання: чому б ти рекомендував повний зв'язок?
Stéphane Laurent

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

4

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

Існує інструмент під назвою ELKI, який має широкий спектр алгоритмів кластеризації (набагато сучасніші, ніж k-засоби та ієрархічна кластеризація), і навіть у нього включена версія відстані перетину гістограми, яку ви можете використовувати в більшості алгоритмів. Ви можете спробувати кілька алгоритмів, наявних у ньому. З сюжету, який ви дали вище, мені незрозуміло, що ви хочете зробити. Згрупуйте індивідуальні гістограми, правда? Судячи з наведених вище 10, кластерів може не бути.


Дякую. Але я шукаю інструмент, доступний в R або SAS. Тоді десять дистрибутивів вище - лише один приклад, у мене є безліч серій розподілів до кластеру.
Стефан Лоран

2

Ви можете скористатися певною технікою вилучення функцій для отримання дескрипторів для k-засобів або іншого типу кластеризації.

Основним підходом було б пристосування певного розподілу до ваших гістограм та використання його параметрів як дескрипторів. Наприклад, у вас, здається, є бімодальні розподіли, які ви можете описати за допомогою двох засобів та 2 стандартних відхилень.

Інша можливість полягає в кластеризації перших двох-трьох головних компонентів підрахунків гістограм.

Альтернативно можна використовувати підходи вейвлетів.

На цій сторінці пояснюється, як це робити під час позаклітинних шипів. Дані різні, але ідея повинна бути застосовна до вашого випадку. Ви також знайдете багато посилань внизу.

http://www.scholarpedia.org/article/Spike_sorting

У R ви можете обчислити основні компоненти вершин, використовуючи princompабо prcompфункцію. Тут ви знайдете підручник з PCA в Р.

Для вейвлетів ви можете подивитися на waveletsупаковці.

k-засоби кластеризації можна досягти за допомогою kmeansфункції.


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