Кластеризація двійкової матриці


22

У мене є напівмаленька матриця двійкових ознак розміром 250k x 100. Кожен рядок - це користувач, а стовпці - це двійкові "теги" деякої поведінки користувача, наприклад "like_cats".

user  1   2   3   4   5  ...
-------------------------
A     1   0   1   0   1
B     0   1   0   1   0
C     1   0   0   1   0

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

  • PCA

  • Створення матриці подібності Жакарду , встановлення ієрархічного кластера та використання верхнього "вузла".

  • К-медіани

  • К-медоїди

  • Проксімус ?

  • Агнес

Поки що я мав певний успіх у використанні ієрархічної кластеризації, але я дійсно не впевнений, що це найкращий шлях.

tags = read.csv("~/tags.csv")
d = dist(tags, method = "binary")
hc = hclust(d, method="ward")
plot(hc)
cluster.means = aggregate(tags,by=list(cutree(hc, k = 6)), mean)

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


1
Для великих (безліч вузлів) та високомірних даних також варто спробувати алгоритм кластеризації графіків (використовуючи, наприклад, танімото подібності та методи, такі як кластерність Louvain, RNSC, mcl). У мене є сумніви, чи буде ваш тип даних генерувати змістовні кластери (це, звичайно, може, звичайно), але ці сумніви стосуються кластеризації в цілому, а не конкретного типу кластеризації. PCA, безумовно, щось, що слід спробувати.
міксани

6
Якщо чесно, я здивований, що це питання привернуло таку маленьку увагу. Чому так? Для мене це звучить як надзвичайно цікаве запитання.
Dror Atariah

Відповіді:


9

Аналіз латентного класу - один із можливих підходів.

Візьміть такий розподіл ймовірностей, де A, B і C можуть приймати значення 1 або 0.

П(Аi,Бj,Ск)

Якби вони були незалежні одне від одного, то ми очікували б побачити:

П(Аi,Бj,Ск)=П(Аi)П(Бj)П(Ск)

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

П(Аi,Бj,Ск)=П(Хн)П(Аi|Хн)П(Бj|Хн)П(Ск|Хн)

Де - латентна категоріальна змінна з рівнями. Ви конкретизуєте , а параметри моделі (граничні ймовірності приналежності до класу та специфічні ймовірності класу для кожної змінної) можна оцінити за допомогою максимізації очікувань.n nХнн

На практиці ви можете оцінити кілька моделей з та "вибрати" найкращу модель на основі теорії, індексів відповідності індексів та якості класифікації (що можна оцінити, обчисливши задні ймовірності членства в класі для спостереження).5н10

Однак, намагаючись визначити змістовні зразки в 100 змінних з 5-10 групами, швидше за все, буде потрібно скорочення цього списку перед оцінкою моделі, що є досить складною темою саме по собі ( REF ).


Чудово, цікаво. Що б ви сказали, вигода від використання цієї техніки над будь-яким з інших?
wije

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

5

Насправді, часте видобуток наборів елементів може бути кращим вибором, ніж кластеризація таких даних.

Звичайний векторно-орієнтований набір алгоритмів не має великого сенсу. Наприклад, K-засоби створюють засоби, які вже не є бінарними.


Чи є сенс використовувати часті елементи, хоча я бажаю кластеризувати користувачів, а не теги (стовпці)?
wie

1
ІМХО так. Але з очевидних причин правила асоціації не є строгим розділенням набору даних. Користувач може бути членом декількох "частих наборів предметів". Тобто користувач може бути як любителем кішок, так і любителем собак; ці дві групи не змушені бути неперервними.
Аноні-Мус-Відновити Моніку

Який ІМХО насправді хороший. Якщо припустити, що кожен користувач є членом саме одного кластеру, мені здається надмірно наївним.
Anonymous-Mousse -Встановити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.