DS algo ?

User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

DS algo ?

Post by Сабина »

Решаю такую задачу ....
Думала SQL-ом, аналитическая функция (LAG etc), но потом подумалось что должен быть какой нибудь подходящий DS algoritm. Перекопала свои лекции по ML4BIZ, ничего подходящего не нашла. Решила спросить здешних датасатанистов

Есть timeseries records like

Code: Select all

ID      timestamp  col1      col2     col3. .....

abc1  ts1             val1     val2     val3
abc1  ts2             val1     val2     val3
abc3  ts3             val1     val2     val3
abc1  ts4             val1     val2     val3
abc1  ts5             val1     val2     val3
abc1  ts6             val1     val2     val3
abc3  ts7             val1     val2     val3
abc1  ts8             val1     val2     val3

Нужно извлечь insights like ...
- abc1 has the most changes in col1 over time, abc3 has the most changes in col3 over time
- col3 is the most frequently changed column in the last 24 hours

И все в таком духе.

Anybody ?
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Komissar
Уже с Приветом
Posts: 65206
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: DS algo ?

Post by Komissar »

Это из колледж курса по Data Science. Младшему задали?
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: DS algo ?

Post by Uzito »

Сабина wrote: 01 Apr 2021 21:30 Anybody ?
Разве это что-то сложнее COUNT DISTINCT?
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: DS algo ?

Post by Сабина »

Uzito wrote: 01 Apr 2021 22:50
Сабина wrote: 01 Apr 2021 21:30 Anybody ?
Разве это что-то сложнее COUNT DISTINCT?
А как вы с count distinct посчитсаете какая колонка менялась чаше чем другая ? Там их собственно 500+ и надо еше и ранжировать по частоте update. Это замучаешься с count distinct . Но я думаю что наверняка есть готовый алгоритм для аназлиза timeseries который все это махом делает и еше и charts строит
https://www.youtube.com/watch?v=wOwblaKmyVw
Lisa
Уже с Приветом
Posts: 3209
Joined: 25 Jul 2000 09:01

Re: DS algo ?

Post by Lisa »

Какой тут может быть ещё алгоритм, кроме как в цикле частоту в каждом столбце посчитать?
User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: DS algo ?

Post by Ion Tichy »

Статистика / тер-вер не помогут?
Чем больше дисперсия, тем сильнее расколбас...
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: DS algo ?

Post by Сабина »

Lisa wrote: 02 Apr 2021 05:36 Какой тут может быть ещё алгоритм, кроме как в цикле частоту в каждом столбце посчитать?
вы о чем ?
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: DS algo ?

Post by Uzito »

Сабина wrote: 02 Apr 2021 01:58 А как вы с count distinct посчитсаете какая колонка менялась чаше чем другая ? Там их собственно 500+ и надо еше и ранжировать по частоте update. Это замучаешься с count distinct . Но я думаю что наверняка есть готовый алгоритм для аназлиза timeseries который все это махом делает и еше и charts строит
Если изменения A->B->C-> ...-> ZZY -> ZZZ то для подсчёта изменений достаточно просто count distinct. Если значения меняются A->B->C->B->A->B->C то нужен LAG для нахождения количества 'значение поменялось'. 500 колонок можно перевернуть в строки и нахождение самой изменяемой колонки сведётся просто к сортировке пересчитанного.
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: DS algo ?

Post by Сабина »

Uzito wrote: 02 Apr 2021 14:36
Сабина wrote: 02 Apr 2021 01:58 А как вы с count distinct посчитсаете какая колонка менялась чаше чем другая ? Там их собственно 500+ и надо еше и ранжировать по частоте update. Это замучаешься с count distinct . Но я думаю что наверняка есть готовый алгоритм для аназлиза timeseries который все это махом делает и еше и charts строит
Если изменения A->B->C-> ...-> ZZY -> ZZZ то для подсчёта изменений достаточно просто count distinct. Если значения меняются A->B->C->B->A->B->C то нужен LAG для нахождения количества 'значение поменялось'. 500 колонок можно перевернуть в строки и нахождение самой изменяемой колонки сведётся просто к сортировке пересчитанного.
Это точно не сработает. Во первых там новых данных приплывает 1 ТВ в неделю в этой таблице. Во вторых некоторые из колонок это списки объектов. ( List<Sruct>) , надо custom UDF писать для сравнения значений.
Есть колонки где значения А -> А -> А -> А ... месяцами
https://www.youtube.com/watch?v=wOwblaKmyVw
Ann4Ann
Уже с Приветом
Posts: 1239
Joined: 14 Nov 2002 23:02
Location: S.Peterburg, Russia -->SoFla

Re: DS algo ?

Post by Ann4Ann »

Сабина wrote: 02 Apr 2021 06:48
Lisa wrote: 02 Apr 2021 05:36 Какой тут может быть ещё алгоритм, кроме как в цикле частоту в каждом столбце посчитать?
вы о чем ?
ну в принципе да, частоту изменений.
может, я не совсем поняла задачу... на прошлой работе у меня была на питоне и кафке написана стриминговая библиотека для индексации time series. это инженерная задача.
скажем у вас есть несколько тысяч сенсоров с производства и они стримят сигналы каждый со своей частотой .. есть раз в 5 секунд, есть раз в 30, есть раз в час.... пишется конфигурируемая компонента, которая их принимает и считает что там ей надо посчитать. в вашем случае индекс изменений (плюс я б добавила стандартно count, min, max avg) в час, в день, в месяц... и тыды. там же вполне могут быть хуки для более сложных реал тайм алгоритмов. потом из индексов уже и чарты, и простой sql подсчет и что угодно. эти компоненты конфигурятся и выстраиваются и в длину, и в ширину, как для конкретной задачи удобнее. ну и, понятно, что они всегда обрабатывают real time поток, но и в режиме R&D на таком пайплайне датасаянтисты всегда могут запустить replay всего, или какого то куска ts и натренировать что там они тренируют, тут серверлесс он деманд и вперед.
на самом деле это где то похоже и на индексацию видео стрима, и на построение поисковых индексов. вы ж там, вроде, уже это написали. питон там или джава вообще фиолетово, там и кода то совсем мало, я на питоне писала только из за хуков для нашей ds команды. а нельзя ваш же поисковый пайплайн на эти ваши ts напустить чуть подкрутив?
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: DS algo ?

Post by Сабина »

Ann4Ann wrote: 02 Apr 2021 15:43
Сабина wrote: 02 Apr 2021 06:48
Lisa wrote: 02 Apr 2021 05:36 Какой тут может быть ещё алгоритм, кроме как в цикле частоту в каждом столбце посчитать?
вы о чем ?
ну в принципе да, частоту изменений.
может, я не совсем поняла задачу... на прошлой работе у меня была на питоне и кафке написана стриминговая библиотека для индексации time series. это инженерная задача.
скажем у вас есть несколько тысяч сенсоров с производства и они стримят сигналы каждый со своей частотой .. есть раз в 5 секунд, есть раз в 30, есть раз в час.... пишется конфигурируемая компонента, которая их принимает и считает что там ей надо посчитать. в вашем случае индекс изменений (плюс я б добавила стандартно count, min, max avg) в час, в день, в месяц... и тыды. там же вполне могут быть хуки для более сложных реал тайм алгоритмов. потом из индексов уже и чарты, и простой sql подсчет и что угодно. эти компоненты конфигурятся и выстраиваются и в длину, и в ширину, как для конкретной задачи удобнее. ну и, понятно, что они всегда обрабатывают real time поток, но и в режиме R&D на таком пайплайне датасаянтисты всегда могут запустить replay всего, или какого то куска ts и натренировать что там они тренируют, тут серверлесс он деманд и вперед.
на самом деле это где то похоже и на индексацию видео стрима, и на построение поисковых индексов. вы ж там, вроде, уже это написали. питон там или джава вообще фиолетово, там и кода то совсем мало, я на питоне писала только из за хуков для нашей ds команды. а нельзя ваш же поисковый пайплайн на эти ваши ts напустить чуть подкрутив?
Спасибо за идею , теперь поняла. По идее min, max подойдёт для простых значений.
https://www.youtube.com/watch?v=wOwblaKmyVw
blanko27
Уже с Приветом
Posts: 2261
Joined: 17 Jun 2003 04:41
Location: Just like US

Re: DS algo ?

Post by blanko27 »

Перед сравнением входные данные обычно нормализуют (вычитая mean и деля на variance), но если у вас абстрактная задача, то можно и так. :)
...а мы такой компанией, возьмем, да и припремся к Элис!
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: DS algo ?

Post by liamkin »

Сабина wrote: 02 Apr 2021 16:08
Ann4Ann wrote: 02 Apr 2021 15:43
Сабина wrote: 02 Apr 2021 06:48
Lisa wrote: 02 Apr 2021 05:36 Какой тут может быть ещё алгоритм, кроме как в цикле частоту в каждом столбце посчитать?
вы о чем ?
ну в принципе да, частоту изменений.
может, я не совсем поняла задачу... на прошлой работе у меня была на питоне и кафке написана стриминговая библиотека для индексации time series. это инженерная задача.
скажем у вас есть несколько тысяч сенсоров с производства и они стримят сигналы каждый со своей частотой .. /quote]

Спасибо за идею , теперь поняла. По идее min, max подойдёт для простых значений.
Если данных много и они все время поступают - то нужна стриминговая обработка. Иначе захлебнетесь.
И в этом случае легко считать все эти "тренды" в таймсерис.
User avatar
Сабина
Уже с Приветом
Posts: 19045
Joined: 11 Jan 2012 09:25
Location: CA

Re: DS algo ?

Post by Сабина »

Вопрос уже решён, всем спасибо
https://www.youtube.com/watch?v=wOwblaKmyVw

Return to “Работа и Карьера в IT”