Нормализация данных
От: Holms США  
Дата: 10.06.05 08:25
Оценка:
Задача

Данны К-векторов точек (х,y — координаты) разной длины.
надо сделать все вектора одинаковой длины с условием что все значения Х одиноковые у всех.
конечно для этого придется добавлять новыу точки в разные места, значения Y для этих точек будет предположим NaN.

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

Можно ли как-то по доугому решить эту задачу?

Пример (без Y значений, они не важны)


В1
1 2 5 7 8 9 10 16
В2
1 3 4 5 7 8 9 
В3
1 2 3 4 5
как результат все вектора должны иметь Х-значения
1 2 3 4 5 7 8 9 10 16

Надеюсь задача ясна.
The life is relative and reversible.
Re: Нормализация данных
От: _DAle_ Беларусь  
Дата: 10.06.05 17:12
Оценка: +1
Здравствуйте, Holms, Вы писали:

H>Надеюсь задача ясна.


Если честно, то мне нет.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Нормализация данных
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.06.05 05:53
Оценка: 6 (1)
Здравствуйте, Holms, Вы писали:

H>Задача


H>Данны К-векторов точек (х,y — координаты) разной длины.

H>надо сделать все вектора одинаковой длины с условием что все значения Х одиноковые у всех.
H>конечно для этого придется добавлять новыу точки в разные места, значения Y для этих точек будет предположим NaN.

H>При решении важна скорость, данных много.

H>Первое то приходит на ум это создать новый вектор (ТТ) со всеми вохможными значениями из всех существующих,
H>после этого еще раз пробежатся по все векторам и смотреть что есть в ТТ и если надо добавить точку.

H>Можно ли как-то по доугому решить эту задачу?


H>Пример (без Y значений, они не важны)



H>
H>В1
H>1 2 5 7 8 9 10 16
H>В2
H>1 3 4 5 7 8 9 
H>В3
H>1 2 3 4 5
H>как результат все вектора должны иметь Х-значения
H>1 2 3 4 5 7 8 9 10 16
H>

H>Надеюсь задача ясна.

Два этапа:
1. Построение упорядоченного множества всех X-значений. Используем, например, дерево. (O(E), где E — суммарное количество элементов всех векторов)
Алгоритм простой:
foreach(вектор в списке_векторов)
foreach(точка в векторе)
если точка.X еще не в Дереве, то добавить точка.X в Дерево
2. Генерация нормализованных векторов: (О (N*L), где N — количество векторов, L — количество разных Х)
X-координаты берем из дерева, Y-координаты — из соответствующего вектора. Дополняем NaN при необходимости.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.