Дозвольте мені пояснити, що я намагаюся зробити. У мене є сюжет зображення точок / пікселів у просторі RGB. Те, що я намагаюся зробити, це знайти видовжені кластери в цьому просторі. Я зовсім новий для кластеризації техніки, і, можливо, я не правильно займаюсь, я намагаюся скомпонувати, використовуючи вбудовані кластерні k-tools MATLAB, але це виглядає так, якби це не найкращий підхід у цьому випадку.
Що мені потрібно зробити, це знайти "кольорові кластери".
Це те, що я отримую після застосування K-засобів на зображенні.
Ось як виглядає так:
для такого зображення:
Чи може хто-небудь сказати мені, де я помиляюся, і що я можу зробити, щоб поліпшити свої результати?
Примітка. Вибачте за зображення з низькою роздільною здатністю, це найкраще, що у мене є.
Відповіді:
1 для відповіді № 1k-means в основному передбачає кластериприблизно сферичний. У вашому випадку вони, безумовно, НЕ. Спробуйте підібрати гауссові для кожного кластера з несферичної матрицею коваріації. В принципі, ви будете дотримуватися тих самих кроків, що й максимізація очікування (EM), як у k-засобі, з єдиним винятком, що ви будете моделювати та встановлювати матрицю коваріації.
Ось схема для алгоритму
- init: призначте кожну точку довільно одному з
k
кластери - Для кожної кластерної оцінки середня та коваріація
- Для кожної точки оцінити його ймовірність належати до кожного кластеру
Зауважте, що така вірогідність базується не тільки на відстані до центру (середня), але також і від форми кластера, оскільки вона закодована матрицею коваріації - повторюйте етапи 2 та 3 до сходження або до перевищення заданої кількості ітерацій
2 для відповіді № 2
Ви намагаєтесь повторити результати цього документа? Я б сказав, просто робити те, що вони зробили.
Однак я додам, оскільки існують певні проблеми з поточними відповідями.
1) Так, ваші кластери не сферичні, а це єробиться припущення k-means. DBSCAN та MeanShift - це ще два поширені способи обробки таких даних, оскільки вони можуть обробляти не сферичні дані. Проте у ваших даних, як видається, є один великий центральний скупчення, який поширюється назовні у кількох кінцевих напрямках.
Для DBSCAN це означає, що все поставитьв один кластер, або все це власний кластер. Оскільки DBSCAN має припущення про рівномірну щільність і вимагає, щоб кластери були розділені деякою маржею.
MeanShift, ймовірно, буде труднощі, тому щовсе, здається, йде з одного центрального вузла, так що це буде область найвищої щільності, до якої точки перемістяться, і сходяться до одного великого кластера.
Моя порада полягає у зміні кольорових простору. У RGB є проблеми, і це припущення більшості алгоритмів роблятьймовірно, не затримається добре під цим. Який алгоритм кластеризації, який ви маєте використовувати, тоді, швидше за все, зміниться в різних функціональних просторах, але, сподіваюсь, це полегшить роботу.
1 для відповіді № 3
Подивись на щільність алгоритми кластеризації, такі як DBSCAN та MeanShift. Якщо ви робите це для сегментації, ви можете додати піксельні координати до своїх векторів.