Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Горизонтальная кластеризация точек 
:(
    Опции темы
BarmoleY
Дата 4.5.2012, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



Добрый день!
Сразу перейду к теме, которая во многом и заставила меня зарегистрироваться на этом форуме.
Дано некоторое (достаточно большое) количество точек в 3-мерном пространстве. Кроме основных параметров точки (X,Y,Z), дан параметр T. Не вдаваясь в подробности, скажу, что это - время, в которое была зафиксирована данная точка. Необходимо произвести кластеризацию точек.
Проблема заключается в том, что все методы, которые я перепробовал (иерархическая кластеризация, k-means, FCM) кластеризуют точки по вертикали. А мне нужно выделить "слои" по горизонтали. Здесь-то я и зашел в тупик. Боюсь, придется писать алгоритм самому, но дабы не изобретать велосипед, прошу совета - вдруг подобные методы уже существуют?
Заранее благодарен всем откликнувшимся.
PM MAIL   Вверх
mrgloom
Дата 4.5.2012, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



что значит по вертикали\горизонтали? я так понял у вас вектор признаков состоит из 4 параметров (x,y,z,t).

Это сообщение отредактировал(а) mrgloom - 4.5.2012, 16:15
PM MAIL   Вверх
BarmoleY
Дата 4.5.2012, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



Цитата(mrgloom @ 4.5.2012,  16:15)
что значит по вертикали\горизонтали? я так понял у вас вектор признаков состоит из 4 параметров (x,y,z,t).

Верно. По сути параметр времени (T) на данном этапе не столько интересен. Сначала разобраться бы с кластеризацией в 3-мерном пространстве.
Что значит по горизонтали... Сейчас приведу пример.

На данный момент практически все алгоритмы выдают следующий результат (два кластера, точки обозначены синим и красным):
user posted image

Мне бы хотелось, чтобы было так:
user posted image

На самом деле график трехмерный, просто в этой проекции выглядит более показательно.

Это сообщение отредактировал(а) BarmoleY - 4.5.2012, 16:28
PM MAIL   Вверх
mrgloom
Дата 4.5.2012, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



ну алгоритмы скорее всего не хотят вам специально навредить, в пику делая кластеризацию по вертикали, а скорее просто делают это просто правильно.

вроде есть такое понятие как разделяющая плоскость, вот там есть картинки например 
http://habrahabr.ru/post/105220/
вот вам как то наверно надо наложить ограничение на эту разделяющую плоскость.


и еще можно повернуть точки на 90 градусов smile 
 
PM MAIL   Вверх
BarmoleY
Дата 4.5.2012, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



Цитата(mrgloom @ 4.5.2012,  16:35)
ну алгоритмы скорее всего не хотят вам специально навредить, в пику делая кластеризацию по вертикали, а скорее просто делают это просто правильно.

вроде есть такое понятие как разделяющая плоскость, вот там есть картинки например 
http://habrahabr.ru/post/105220/
вот вам как то наверно надо наложить ограничение на эту разделяющую плоскость.


и еще можно повернуть точки на 90 градусов smile

Поворачивать нельзя, там с особенностями предметной области связано...
А вот разделяющие плоскости - это уже ближе!
Спасибо за совет, буду разбираться!smile
PM MAIL   Вверх
BarmoleY
Дата 4.5.2012, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



А на "конвейер" такой алгоритм (с разделяющими плоскостями) не поставишь... Мне нужно программно оработать много таких пространственных "кубов" как тот, что я привел выше. Нужно другое решение...
PM MAIL   Вверх
ksnk
Дата 4.5.2012, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



Может, дело в неправильной метрике? Алгоритмы кластеризации вычисляют некий набор кластеров, по расстоянию между точками кластера. Так что если поменять метрику и считать, что "длина" по оси Y в несколько раз больше, чем по оси X, то можно откорректировать алгоритм.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
BarmoleY
Дата 4.5.2012, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



Цитата(ksnk @ 4.5.2012,  17:12)
Может, дело в неправильной метрике? Алгоритмы кластеризации вычисляют некий набор кластеров, по расстоянию между точками кластера. Так что если поменять метрику и считать, что "длина" по оси Y в несколько раз больше, чем по оси X, то можно откорректировать алгоритм.

Спасибо, попробую с метрикой поэкспериментировать.
PM MAIL   Вверх
BarmoleY
Дата 5.5.2012, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.5.2012

Репутация: нет
Всего: нет



Цитата

Наряду со стандартизацией переменных, существует вариант придания каждой из них
определенного коэффициента важности, или веса, который бы отражал значимость
соответствующей переменной.


Взято отсюда.
Только вот как это работает - я так и не понял. Каким образом задаются эти веса?.. Если кто-то работал с этим, приведите, пожалуйста, примеры.
PM MAIL   Вверх
Mirkes
Дата 8.5.2012, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 4
Всего: 17



Цитата(BarmoleY @ 5.5.2012,  12:18)
Цитата

Наряду со стандартизацией переменных, существует вариант придания каждой из них
определенного коэффициента важности, или веса, который бы отражал значимость
соответствующей переменной.


Взято отсюда.
Только вот как это работает - я так и не понял. Каким образом задаются эти веса?.. Если кто-то работал с этим, приведите, пожалуйста, примеры.

Например так. Пусть важность X=20, Y=100, Z=50, T=1
Тогда в качестве квадрата расстояния вычисляется следующая величина 20(x-xn)^2+100(y-yn)^2+50(z-zn)^2+(t-tn)^2
Через маленькие буквы обозначил координаты точек, через буквы с добавкой n - координаты ядра (центроида) класса.


--------------------
Mirkes
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.