Вибір функцій для проблем кластеризації


9

Я намагаюся згрупувати різні набори даних, використовуючи непідтримувані алгоритми (кластеризація). Проблема полягає в тому, що у мене багато особливостей (~ 500) і невелика кількість справ (200-300).

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

Тепер я бачу, що у випадку непідконтрольного навчання я не маю ані жодного критерію попереднього вибору, ані я можу використовувати послідовний відбір вперед (принаймні, не в пакеті mlr).

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

Дякую

редагувати:

Гаразд, після деяких досліджень в Інтернеті я можу трохи оновити своє запитання: Перш за все, я прочитав деякі статті, які перешкоджають використанню PCA перед кластеризацією алгоритмів через дві причини:

  • Комп'ютери - це функції всіх функцій, тому важко пов'язати результат з набором первинних даних, і тому важче інтерпретувати

  • Більше того, якщо у вас є проблема, що насправді лише невелика частина ваших функцій корисна для кластеризації, не сказано, що ці функції також описують найбільшу дисперсію серед зразків (це те, що роблять ПК)

Тож PCA не входить у стіл ...

Тепер я повернувся до своєї початкової ідеї зробити послідовний вибір вперед для кластеризації.

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

Сподіваюся, ви, хлопці, можете мені допомогти ...


Випадкові ліси можуть бути застосовані в непідконтрольних проблемах. І я думаю, ви все ще можете отримати деякі інформативні функції в процесі.
amanita kiki

Відповіді:


11

Я маю поділитися кількома думками про зменшення розмірів у непідвладних навчальних проблемах. Відповідаючи, я припускав, що ваш інтерес полягає у "високому дотику", інтерпретації кластерів wrt wrt-кластера на відміну від автоматизованого підходу під ключ, чорного поля та "низького дотику" підходу машинного навчання, в якому інтерпретація свідомо не підкреслюється . Якби це було останнє, чому б ви навіть задавали питання? Також зауважте, що я протягом багатьох років мав багато досвіду роботи з кластерними рішеннями в широкому діапазоні бізнес-середовищ, включаючи стратегічний маркетинг B2C, технічні сфери B2B та освітню політику (кластеризація студентів та шкіл).

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

Я хотів би оскаржити ваше припущення в №1 вище, що рішення, засновані на ПКС, "важко інтерпретувати". Причини навіть використання PCA як попереднього кроку кластеризації пов'язані з гігієною отриманого рішення, якщо багато алгоритмів кластеризації чутливі до надмірності функцій. PCA згортає цю надлишок у керовану жменю компонентів, тим самим мінімізуючи проблеми та труднощі, які ви зазначили щодо вибору функцій. Хоча це правда, що компоненти, що виводяться з PCA, розмивають деталізацію та специфіку окремих особливостей, це проблема, якщо ви покладаєтесь виключнощодо цих компонентів при аналізі результатів. Іншими словами, ви жодним чином не замикаєтесь на використанні лише компонентів для інтерпретації кластерів. Мало того, що вам не обов’язково навіть дбати про те, що означають розміри факторів. Вони є лише проміжним і (в кінцевому рахунку) одноразовим засобом, що сприяє прийняттю рішень. Але, кажучи про це, я відрізняюсь від багатьох практикуючих тим, що команди можуть, бажають і проводять тижні ретельно, будуючи «змістовне» рішення фактора. Для мене це неефективна витрата часу та грошей клієнта.

На цьому етапі відбуватиметься судно технічних міркувань. Якщо, наприклад, ваш алгоритм PCA не є інваріантним за шкалою (наприклад, OLS проти ML), то будь-яке отримане рішення PCA буде спотворено, завантажуючи більш сильні функції на великій дисперсії. У цих випадках ваші функції потрібно попередньо обробити або трансформувати певним чином, щоб вирівняти цю дисперсію. Тут існує величезна кількість можливостей, включаючи середню стандартизацію, стандартизацію діапазону або IQR, масштабне іпсативне тощо. Використовуйте цю трансформацію, яка забезпечує найкраще, найбільш інтерпретоване рішення.

Після створення кластерного рішення інтерпретація найкраще мотивується (на мій досвід) ігноруванням компонентів та складанням оригінальних функцій разом із будь-якою додатковою описовою інформацією, яка безпосередньо не використовується в рішенні. На даний момент декілька евристик є найкращими орієнтирами для якісного розуміння. Це може бути таким же простим, як створення електронної таблиці, яка профілює ваші кластери на основі середніх значень або медіанів для кожної функції (рядки аркуша), для кожного кластеру (стовпці), а також додатковий стовпчик, що представляє велике значення для вашої загальної вибірки . Потім, індексуючи кластерні середні показники для кожної функції проти великої середньої величини (і помноживши на 100), створюється евристика, яка нагадує показник IQ, наскільки приблизно "100" є "нормальним" IQ або середньою поведінкою, індекси 120+ свідчать про високу ймовірність того, що функція буде "правдивою" щодо поведінки кластера, а індекси, що дорівнюють 80 або менше, вказують на функції, які "не відповідають дійсності" кластеру. Ці показники 120+ і 80 або менше схожі на проксі-тести на значущість певної функції в русі рішення. Звичайно, ви можете переходити між груповими тестами на значущість і, залежно від розмірів вибірки, отримаєте відповіді, які залежать від цих швидких і брудних правил.

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

На вашу думку про велику кількість функцій і відносно невеликий розмір вибірки ваших даних, типове правило у багатьох багатоваріантних аналізах "повної інформації" - це як мінімум приблизно 10 спостережень на функцію. Існують деякі спеціалізовані методи, які можна використовувати для вирішення цього завдання. Наприклад, часткові найменші квадрати (PLS) були вперше розроблені Германом Уолдом у своїй книзі « Теоретичний емпіризм» 1990 року для використання в таких галузях, як хіміометрія, які стикаються з цією проблемою. Він є факторно-аналітичним за своєю суттю, але набагато менш суворий у вимаганні великого n для створення розмірів. Інші рішення включають випадкові підходи до машинного навчання, подібні до лісу, «поділяй і перемагай», використовувані з великою кількістю інформації. Ці методи розглянуті в цьому PDFhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Але припустимо, ви вирішили, що ви все ще не хочете нічого спільного з факторним аналізом і мертві, щоб запустити якийсь контрольований "послідовний" процес відбору. На мій погляд, найважливіше питання полягає у тому, щоб не знайти постмеханічну метрику ефективності (Dunn Index), а більше визначити відповідний проксі - залежну змінну -, щоб навіть зробити такий підхід можливим. Це рішення повністю залежить від вашого судження та статусу малого та середнього бізнесу. Немає «найкращих практик», набагато менш легких відповідей на це та з огляду на те, як ви описали свої дані, немає невеликих викликів.

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

Варто зазначити, що існують контрольовані моделі навчання, які складаються в кластерне рішення як частина алгоритму. Приклади цього включають великі та дуже гнучкі підходи, відомі як моделі прихованого класу. Суть моделей ЖК полягає в тому, що вони двоступеневі: на першому етапі визначається DV та будується регресійна модель. На другому етапі будь-яка неоднорідність залишкового виходу з моделі - єдиний прихований вектор - поділяється на латентні "класи". У цьому обговоренні резюме тут є огляд моделювання ЖК ... Сумніви в мультиноміальній моделі логітного класу

Сподіваюсь, це допомагає.


Дякую, що знайшли час, щоб відповісти на моє запитання так широко. Перш за все смішно, що ви згадали про хіміометрію, бо це саме те поле, над яким я працюю. Я намагаюся знайти кластери в вимірах різних зразків, і мої особливості - це сигнали в спектрі ЯМР. Це також головна причина, чому я так рано думав про відмову від PCA, оскільки мета мого аналізу - співставити кластери з кількома фактичними ознаками (сигналами). Я не мертвий, щоб використовувати послідовний вибір, це саме те, що я використовував до цих пір. Я перегляну посилання, які ви дали.
JohnDoe

Це смішно щодо хіміометрії. Книга Уолда - це добре прочитане, просто загалом. Які "предмети" складають зразки? І що таке nmrs-зображення?
Майк Хантер

Зразки - водні рослинні екстракти та беруть спектри 1Н-нмр. Моє завдання суто розвідувальне. Я повинен знайти будь-яке скупчення, яке ми хочемо пізніше пов’язати або з різними генотипами, або з різними особливостями рослини, такими як посухостійкість та стресостійкість тощо. / функції, які допомагають розділити кластери, оскільки для різних питань будуть різні кластери, створені різними функціями.
JohnDoe

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

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

1

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

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