Кластеризація набору даних як дискретних, так і безперервних змінних


33

У мене є набір даних X з 10 вимірами, 4 з яких - дискретні значення. Насправді ці 4 дискретні змінні є порядковими, тобто більш високе значення означає більш високу / кращу семантичну.

2 з цих дискретних змінних є категоричними в тому сенсі, що для кожної з цих змінних відстань, наприклад, від 11 до 12, не є такою ж, як відстань від 5 до 6. У той час як більш високе значення змінної передбачає більшу реальність, масштаб є не обов'язково лінійний (насправді він насправді не визначений).

Моє запитання:

  • Чи корисно застосувати загальний алгоритм кластеризації (наприклад, K-Means, а потім Гауссова суміш (GMM)) до цього набору даних, який містить як дискретні, так і безперервні змінні?

Якщо ні:

  • Чи слід видаляти дискретні змінні та зосереджуватися лише на безперервних?
  • Чи варто краще дискретизувати безперервні та використовувати алгоритм кластеризації для дискретних даних?

3
Потрібно знайти хороший показник відстані (найчастіше найскладніше завдання в кластеризації): якщо ви зможете знайти міру відстані, яка правильно і точно описує, наскільки схожі (чи ні) ваші дані даних, у вас не повинно виникнути жодних проблем.
Андрій

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

Вони також дискретні, але обидва вони мають змістовну функцію відстані, тобто є інтервальною (якщо я не псую визначення інтервального).
ptikobj

Відповіді:


14

7

Мені доводилося стикатися з подібною проблемою в минулому, і, думаю, може бути два цікавих підходи:

  • Продовження: перетворення символічних атрибутів у послідовність цілих чисел. Існує кілька способів зробити це, всі вони описані в цій роботі . Ви можете спробувати алгоритми NBF, VDM та MDV.

  • Дискретизація: перетворення безперервних атрибутів у символічні значення. Знову багато алгоритмів, і гарною лекцією про це була б ця стаття . Я вважаю, що найпоширенішим методом є 1R Холте, але найкращий спосіб точно знати - це дивитись на криві ROC проти таких алгоритмів, як EWD, EFD, ID, LD або NDD.

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

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


4

K-означає, очевидно, не має ніякого сенсу, оскільки він обчислює засоби (які є безглуздими). Те саме стосується і GMM.

Ви можете спробувати алгоритми кластеризації на основі відстані з відповідними функціями відстані, наприклад, DBSCAN.

Основна задача - знайти функцію дистанції!

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

У будь-якому випадку спочатку зосередьтесь на визначенні, що таке «подібне» . Тоді кластер, використовуючи таке визначення подібного!


2

Якщо вам зручно працювати з дистанційною матрицею розміру num_of_samples x num_of_samples, ви можете також використовувати random forests.

Клацніть тут, щоб отримати довідковий документ під назвою Unsupervised learning with random forest predictors.

Ідея полягає у створенні синтетичного набору даних за shufflingзначеннями в початковому наборі даних та підготовці класифікатора для розділення обох. Під час класифікації ви отримаєте анкету inter-sample distance matrix, на якій ви можете перевірити свій улюблений алгоритм кластеризації.


-2

Скористатися змішаним підходом: 1) Використовувати методи класифікації (дерево рішень C4.5) для класифікації набору даних у 2 класи. 2) Після того, як це буде зроблено, залиште категоричні змінні та перейдіть до безперервних змінних для кластеризації.


Я не міг дотримуватися вашої пропозиції. Які два класи, і як це допоможе?
KarthikS

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

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