Ищу название алгоритма - страница 5

 
alexeymosc:

Позвольте предложить такой ответ: 3 параметра укладываются в трехмерную систему координат. Визуально ищите 3 наиболее удаленные точки. Это приблизительный способ.

Второй, точный метод, он посложнее: посчитайте евклидову меру расстояния между каждым набором параметров (точек в 3-х мерном пространстве). Выберите пару точек, между которыми наибольшее расстояние. Затем нужно найти такую третью точку, чтобы она была примерно равноудалена от первых двух.

1) Трехмерка это пример. Функция должна быть универсальна. И визуализация - это конечно, хорошо, но в этой ветке ищут алгоритмы ))

2) ... примерно равноудалена от первых двух... Здесь возникает не однозначность, и о точности говорить не приходится. Ведь 3-я точка может лежать на прямой между первыми двумя,

а надо - максимально далеко.

.........

Вообще, что бы понять что-то, надо это что-то максимально упростить.

Но и здесь все не однозначно, например, имеем одномерку:

Сортируем и по Эвклиду для трех точек получаем:

Но это не то, что хотелось бы получить, т.к. видно, что 17 - это выброс, и как следствие, получаем два близких (из одного кластера) значения.

 

На мой взгляд, вопрос поставлен не ясно. В чем задача не понятно. Можно понять, что Вам нужно 3 точки, расстояние между которыми максимально, то есть, сумма расстояний максимальна. Одним из решений может быть такое, что точки А и В находятся близко, но точка С от них далека, но сумма расстояний между ними будет максимальна...

В общем, сформулируйте ясно.

 
alexeymosc:

На мой взгляд, вопрос поставлен не ясно. В чем задача не понятно. Можно понять, что Вам нужно 3 точки, расстояние между которыми максимально, то есть, сумма расстояний максимальна. Одним из решений может быть такое, что точки А и В находятся близко, но точка С от них далека, но сумма расстояний между ними будет максимальна...

В общем, сформулируйте ясно.

Да вроде сразу, сформулировал ясно.
lasso:

Задача:

- как из множества в 500 удовлетворяющих неким требованиям наборов выбрать, к примеру, 3 набора параметров

с условием что они максимально удалены, не похожи друг на друга.

 
lasso:

Задача:

- как из множества в 500 удовлетворяющих неким требованиям наборов выбрать, к примеру, 3 набора параметров

с условием что они максимально удалены, не похожи друг на друга.

Нужно посчитать разность между параметрами наборов. Потом посчитать среднеарифметическое от разностей. Где результат получится больше, значит та пара наборов наиболее удалена друг от друга.

 
lasso:
Да вроде сразу, сформулировал ясно.

А я повторю, что численно задачу в такой постановке не решить. Не решить.

Вы можете перебрать все расстояния между точками, выбрать две наиболее удаленные, затем искать третью точку, которая сильно удалена от первых двух, и таких точек будет много! А какую Вам нужно - не понятно из постановки задачи.

 
joo:

Нужно посчитать разность между параметрами наборов. Потом посчитать среднеарифметическое от разностей. Где результат получится больше, значит та пара наборов наиболее удалена друг от друга.

Для пары наборов решение найти просто. lasso хочет найти тройку наборов "максимально удаленных друг от друга".
 
alexeymosc:
Для пары наборов решение найти просто. lasso хочет найти тройку наборов "максимально удаленных друг от друга".
Оставшихся параметров не так уж и много, можно поискать перебором и найти тройку.
 
alexeymosc:

А я повторю, что численно задачу в такой постановке не решить. Не решить.

Вы можете перебрать все расстояния между точками, выбрать две наиболее удаленные, затем искать третью точку, которая сильно удалена от первых двух, и таких точек будет много! А какую Вам нужно - не понятно из постановки задачи.

ОК. Давайте на примере обсудим:

1) Провел обычную оптимизацию с двумя параметрами (2500 проходов/наборов)

2) Отфильтровал не устраивающие меня наборы параметров (осталось 220 наборов)

3) Получилась следующая картинка:


4) Затем в два шага расчитав расстояния между точками, получил результат на примерной тестовой выборке (полностью все исходные данные в прицепе):


Вроде все правильно.

Для трехмерки - все по аналогии...

А для других размерностей???

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

и по ссылке второй массив в котором вернутся отобранные наборы в количестве соответствующем размеру массива.

Велосипед изобретать очень не хочется...

 
wmlab:

Задача такова - есть набор точек с неким набором свойств каждая. С помощью сложной функции можно посчитать "расстояние" между двумя любыми точками. Требуется расположить точки в одну линию так, чтобы соблюсти максимально точно отношения расстояний между ними.

В такой постановке задача неразрешима в принципе. "расположить точки в одну линию" предполагает выполнение некоей проекции из многомерного "мира" в линейный. А правила исполнения этой проекции вы не сформулировали. самый главный вопрос выполнения такой проекции: как "располагается" ваша линия проекции в вашем многомерном мире и как рассчитывается растояние от точки до этой самой линии и как нужно проводить линию проекциив многомерном мире до пересечения с вашей "линией интереса"... вот когда вы сформуируете это - дальше все будет элементарно.

Вот на рисунке оба построения правильные, но они совершенно разные. Я полагаю вас такой результат не устроит ;)

Если же вы будете настаивать на том что, имеется растояние (одна цифра) между двумя любыми точками, то за исключением одного единственного случая (все точки уже лежат на вашей лиии) построение также не возможно (треугольник нельзя разместить НА ЛИНИИ :) его можно только спроектировать, а дальше - см. предыдущее замечание ;)

 
f.t.:

В такой постановке задача неразрешима в принципе. "расположить точки в одну линию" предполагает выполнение некоей проекции из многомерного "мира" в линейный. А правила исполнения этой проекции вы не сформулировали. самый главный вопрос выполнения такой проекции: как "располагается" ваша линия проекции в вашем многомерном мире и как рассчитывается растояние от точки до этой самой линии и как нужно проводить линию проекциив многомерном мире до пересечения с вашей "линией интереса"... вот когда вы сформуируете это - дальше все будет элементарно.

Вот на рисунке оба построения правильные, но они совершенно разные. Я полагаю вас такой результат не устроит ;)

Если же вы будете настаивать на том что, имеется растояние (одна цифра) между двумя любыми точками, то за исключением одного единственного случая (все точки уже лежат на вашей лиии) построение также не возможно (треугольник нельзя разместить НА ЛИНИИ :) его можно только спроектировать, а дальше - см. предыдущее замечание ;)

Это интересно.

Рискну предположить, что СКП Кохонена в любом случае (при нескольких экспериментах) будет сходится примерно к одному "положению прямой". Если знакомы с самоорганизующимися картами и алгоритмом их работы, то можете представить, для простоты, в трехмерном пространстве, как линия в процессе обучения "бесится", то есть крутиться в гиперкубе во всех измерениях и в результате останавливается так, что проходит через ЦЕНТРЫ имеющихся плотных скоплений точек. Ведь сами нейроны СКП подтягиваются к этим скоплениям... Речь идет про СКП размером 1 нейрон на ... сколько сами опеределите, то есть, это и будет прямая линия.

Можно попробовать, но я не буду, так как практического результата от проецирования именно на линию не вижу.

Причина обращения: