Чи допомагає попереднє кластерування побудувати кращу модель прогнозування?


9

Для завдання моделювання збивання я розглядав:

  1. Обчисліть k кластери для даних
  2. Побудуйте k моделі для кожного кластеру окремо.

Обґрунтуванням цього є те, що немає чого доводити, що популяція субрибелів є однорідною, тому розумно вважати, що процес генерації даних може бути різним для різних "груп"

Моє запитання, чи це відповідний метод? Чи щось порушує, чи чомусь вважається поганим? Якщо так, то чому?

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

Відповіді:


3

Існує метод, який називається кластерною регресією, який вирішує подібну проблему (спочатку кластерні дані, а потім будують прогнозні моделі). Дивіться, наприклад, це.


1
Я переглянув це тут: tandfonline.com/doi/abs/10.1080/00273170701836653 і виявив таке в рефераті: "n у деяких випадках більшість варіацій змінної відповіді пояснюється кластеризацією об'єктів, з невеликою додатковою вигодою, яку надає регресійні моделі всередині кластеру. Відповідно, існує величезний потенціал для перевиконання регресії з кластерною стрілкою ". Це насправді не здається перспективним.
Зіель

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

Крім того, більшість застосунків, які я знайшов, стосуються маркетингу та фінансів, тому, можливо, воно підходить особливо для такого роду даних.
Мирослав Сабо

1
Це здається дуже інтуїтивно зрозумілим для галузі маркетингу - збільшити, перехрестити / продати.
Зіель

2

Два пункти, які занадто довгі для коментаря:

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

  • Однак якщо кластери даних таким чином, що класи досить відокремлені, тобто кластери є досить чистими, це означає, що існує дуже сильна структура, структура, яку аналіз кластерів може знайти без керівництва мітками класів. Це означає, що певні типи класифікаторів, такі як методи найближчих сусідів, засновані на тій же мірі відстані, яка використовується кластерним аналізом, є відповідними даним.

  • Інша можливість - ситуація, коли кластери не є чистими, але комбінація кластерних та класифікаційних методів може добре підходити для дерев. Дерево виконає частину кластеризації (і чисті вузли не вважаються проблемою.) Ось штучний приклад, 2-кластерна версія XOR-проблеми:
    Кластер XOR

  • Ще одним способом включення інформації кластера без ризику виникнення чистих кластерів було б використання кластеризації як кроку генерації функцій: додавання результатів аналізу кластерів як нових змінних до матриці даних.

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

  • Подивіться на моделі на основі моделей, наприклад відповідь mbq тут, я думаю, що вони реалізують концепцію, дуже близьку до того, як ви шукаєте. Вони також можуть бути реалізовані як лісові: наприклад, пакет R mobForest .


1

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

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

Я думаю, що це також може допомогти зменшити складність, хотілося б, щоб це допомогло.


1

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

Крім того, якщо процес починається з N зразки, класифікатори можуть використовувати лише N/kзразки. Таким чином, більш потужним підходом було б використання кластерів для побудови єдиного класифікатора, який інтегрує неоднорідність у кластери, використовуючи суміш регресій. У кластеризації на основі моделей можна припустити, що дані генеруються в результаті розподілу сумішейYiN(μi,σi2) де i=1 з вірогідністю π і i=2 з вірогідністю 1π і μ1 μ2 і σ12σ22. Регресія суміші - це розширення, яке дозволяє моделювати дані як залежні від співперемінних;μi замінюється на βiXi, де βiповинні бути оцінені. Хоча цей приклад стосується універсального, гауссового випадку, рамки можуть вміщувати багато даних (мультиномний logit був би відповідним категоричним змінним). Пакет flexmix для R пропонує більш детальний опис і, звичайно, відносно простий і розширюваний спосіб реалізації цього підходу.

Крім того, у дискримінаційній обстановці можна спробувати включити кластерні завдання (жорсткі або м'які) як особливість для навчання алгоритму класифікації за вибором (наприклад, NB, ANN, SVM, RF тощо).


0

Ну, якщо ваші кластери справді хороші, ваші класифікатори будуть лайна. Тому що у них недостатньо перенаправлення в даних про навчання.

Скажіть, ваші кластери ідеальні, тобто чисті. Ви навіть не можете там правильно навчати класифікатора. Класифікаторам потрібні позитивні та негативні приклади!

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

Що може працювати, це використовувати кластеризацію, а потім тренувати класифікатор на кожній парі кластерів, принаймні, якщо вони досить не згодні (якщо клас розділений на два кластери, ви все одно не можете навчити там класифікатора!)


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

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

1
Але лише якщо ви здійснюєте дворівневий підхід, спочатку класифікуйте кластери, а потім оцініть класифікатор кластера. В іншому випадку постійний класифікатор марний. Тоді ви покладете весь тягар на кластеризацію.
Мав QUIT - Anonymous-Mousse

1
Ну, ось як я зрозумів ОП.
cbeleites незадоволений SX

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