Гость
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS Структуры интеллектуального анализа данных / 25 сообщений из 49, страница 1 из 2
09.09.2019, 16:58
    #39859451
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Добрый день, коллеги.
На локальном компьютере в Developer версии сервера поднял SSAS. Компьютер мощный (SSD, i7).
Сделал локально же куб (от миллиона до 5 миллионов записей, 10 измерений), пытаюсь на основе этого куба построить "структуру интеллектуального анализа данных" на деревьях (самый базовый алгоритм), для прогнозирования.
Куб считается минут за 5, но модель обрабатывается очень долго - почти сутки.

Можете подсказать, где можно почитать что происходит, когда идёт обработка модели интеллектуального анализа данных и каким образом можно её ускорить?
В интернете, к сожалению, подробной информации не нашёл - на MSDN очень мало информации и она очень поверхностная, нигде не могу найти более глубокую информацию...
...
Рейтинг: 0 / 0
09.09.2019, 17:36
    #39859473
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев,

1) смотрим загрузку памяти/процессоров,
2) уменьшаем размер выборки если есть достаточная репрезентативность
и хватает статистической значимости (влияние на качество модели).

что за алгоритм используется хоть? есть довольно тяжелые, есть очень лёгкие (по расчётным мощностям)

имхо - не стоит так настойчиво ставить цель научиться наступать на как можно больше расставленных граблей
описания принципов работы алгоритмов есть на docs.microsoft.com где явно написано
! Important
Data mining is deprecated in SQL Server Analysis Services 2017
т.е. то что они там есть - это всего-лишь для совместимости (и повторю - не развивалось с 2008го года,
т.е. 10 лет, кроме того перестало развиваться практически сразу после выпуска, попросту не взлетело
{хотя в некоторых местах на тот короткий момент прижилось})

легче будет на распределённых кластерах считать типа
https://community.cloud.databricks.com/ (или не бесплатное - коммерческое, там расчётные мощности получше)
https://www.kaggle.com/

ну и как ранее советовали:
a) R / Python (внутри SQL Server)
b) облака Azure / AWS / Google
...
Рейтинг: 0 / 0
09.09.2019, 17:47
    #39859480
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышевна деревьях

у decision trees есть https://docs.microsoft.com/en-us/analysis-services/data-mining/microsoft-decision-trees-algorithm-technical-reference#customizing-the-decision-trees-algorithm
]параметры настройки,
можно подёргать параметры support, split, score
сколько факторов используется?
если есть непрерывные (continious) то можно их разложить
в bin (на диапазоны) - превратив в дискретные, очень облегчает нагрузку
...
Рейтинг: 0 / 0
09.09.2019, 17:48
    #39859481
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
...
Рейтинг: 0 / 0
09.09.2019, 19:09
    #39859539
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Понятно, спасибо.
Видимо делать прогнозирование на SSAS - было очень плохой идеей...
...
Рейтинг: 0 / 0
09.09.2019, 19:37
    #39859556
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев,

ну очень это слишком конечно

как расчётная часть - есть легкодоступные инструменты намного более производительные,
современнее, перспективней и гибче (в плане алгоритмов/настроек/автоматизации)
хотя если есть желание и ограничения - SSAS Data Mining тоже вполне пока подходит,

но это уж чисто на любителя, планировать новую архитектуру на этом - сильно не по IT фэн-шую
(т.к. перспективы/альтернативы, современные стандарты/практики в IT, прогнозы по технологиям)

в том-же SSAS MD есть пользовательские assemblies/dll на которые можно прикрутить любые
функции взаимодйствующие с внешими приложениями/сервисами/библиотеками (с тем-же SQL Server, R/Python и т.д.)

в табличной модели их нет но есть direct_query который тоже-самое может делать на уровне SQL (.NET/ C# / CRL)
(т.к. часто все комбинации предварительно материализовывать нет смысла,
легче запрос в тренированную модель послать и получить ответ, есть и scalar и bulk варианты)

Так что SSAS как self-service BI и аналитика - вполне подходит даже для прогнозирования/планирования
с т.зр. элемента front-end цепи где прогнозная часть считается на лету
(не важно: с полной тренировкой модели по запросу или на основании предварительно подготовленнойй модели)
или подставляется из заранее расчитанных/материализованных исходов
, а вот как его разумней готовить - это уже каждому по способностям/возможностям, на усмотрение и риск архитектора (если есть).


вкратце - можно и использовать SSAS DM/DMX, вопрос нужно-ли..
...
Рейтинг: 0 / 0
10.09.2019, 09:29
    #39859684
George Nordic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр, тут вопрос в том, что Вы прогнозируете. И сколько факторов учитываете при прогнозе (я так понял, порядка десятка).

Т.е. одно дело - ритейл, другое - потребление электроэнергии или курс валют.

Есть множество алгоритмов (и решений), каждый из которых лучше подходит для той или иной задачи, как и набор наиболее влияющих факторов. Есть "универсальные" инструменты (навскидку назову Oracle Demantra, т.к. IBM SPSS требует более детальной подготовки данных потому как многофакторный анализ во весь рост, JDA больше заточен под дистрибуцию и ритейл, тем более - легкие решения типа ForecastPro, сотни их), которые прогоняют разные модели с различным набором параметров, потом "разворачивают назад" регрессионным анализом, смотрят какой алгоритм лучше ложится на исходные данные, строят доверительный интервал прогноза и подбирают наилучший алгоритм. В любом случае, очень много зависит от качества исходных данных - их надо готовить (убирать выбросы, связанные с маркетинговыми кампаниями и т.д., где не было остатков и были нули - заполнять по среднему) и кол-ва параметров - если вы в данные не запихнете календарь / сезон / праздники (постоянные и с "мягкой" датой) - их не один алгоритм не учтет, хоть R хоть databricks.

Что за задача? Ритейл?

С Уважением,
Георгий
...
Рейтинг: 0 / 0
10.09.2019, 13:02
    #39859806
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
George Nordic,
Задача - логистика.
Машины ездят туда-сюда, грузы возят.

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

Поток машин и стоимость зависят от сезонности и даже дня недели - будни или выходные.
Цена перевозки зависит от веса, типа груза, и ещё кучи параметров.

Хотел алгоритм - чтобы просто в него загнал все данные, он долго-долго думал, а потом построил модель, которая идеально всё прогнозировала.

Но насколько понял - так не бывает - нужно будет самому искать закономерности, делать модель и долго муторно её отлаживать.
...
Рейтинг: 0 / 0
10.09.2019, 16:51
    #39859952
George Nordic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр БердышевХотел алгоритм - чтобы просто в него загнал все данные, он долго-долго думал, а потом построил модель, которая идеально всё прогнозировала.Да, мы все хотим большую красную кнопку... ты ему курс акций и фазы луны, а она - когда покупать блокчейн Александр БердышевНо насколько понял - так не бывает - нужно будет самому искать закономерности, делать модель и долго муторно её отлаживать.Да, увы. Плюс акции конкурентов, а то Грузовичков или ДелЛин как запустят акцию - модель может поехать. Кстати, если корпоратов много, надо еще договора грузить.. Цены конкурентов, их акции. Можно, конечно, и без этого, но точность модели будет меньше. Вам даже еще сложнее - производная от спроса. т.е. надо смотреть что перевозят, а потом - сколько из этого Вами. Удачи!

С Уважением,
Георгий
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.01.2021, 20:08
    #40033925
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев
Понятно, спасибо.
Видимо делать прогнозирование на SSAS - было очень плохой идеей...

На будущее потомкам: весь анализ данных и машинное обучение - делать только на питоне.
Просто потому что.
...
Рейтинг: 0 / 0
06.01.2021, 20:47
    #40033933
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев,

питон оказался той красной кнопкой?
...
Рейтинг: 0 / 0
06.01.2021, 20:58
    #40033935
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев
весь анализ данных и машинное обучение - делать только на питоне.

Странно. Сколько ни тестировал, Python уступал R по производительности. Причем существенно.
Что я не так делал?
...
Рейтинг: 0 / 0
06.01.2021, 21:11
    #40033939
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Нативная поддержка на всех основных платформах, SAS, Azure ML, DataBricks.
элементарное сравнение количества библиотек например с тем-же R: на порядок больше ( >100К+)
один только PySpark чего стоит (чтобы на Scala /Java не писать)

динамика развития популярности и т.д.
даже поддержка в Power BI Service (отчётность в облаке, правда с оговорками/ограничениями)

Pandas/NumPy/matplotlib уже со школы пора-бы преподавать с родной Jupyter(ipykernel/IPython) средой/форматом.

в колледжах/универах добавлять NumPy, MLFlow/MLlib/SciPy/Sci-Kit Learn, может даже TensofFlow / PyTorch
а то застряли в excel-ьках прошлого века, которые в нынешнем мире уровень сразу после начальных классов.
...
Рейтинг: 0 / 0
06.01.2021, 21:21
    #40033942
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
ptr128,

библиотеки разные есть, у большинства с параллельностью проблемы (многопоточность/многоядерность/threads), R на больших объёмах будет вываливаться с ошибкой (если памяти не хватает, хотя некоторые коммерческие пакеты эту проблему в некотором плане решают), на Py с этим полегче.
Оба языка всё равно сктиптовые а не компилируемые, так что отличие производительности на порядок(00 порядки?) вполне ожидаемо по ср. с тем-же C# и немногим больше c C/C++
numpy/pandas вроде как немного получше, pyspark и того производительнее на многих операциях (но как-бы и не вопрос, всё-таки просто прямой интерфейс к спарку)

на R у MS вроде-бы нормально прикручены MKL библиотеки с их revoscaler , но он как-бы legacy в некотором смысле..
для Python тоже есть BLAS и пр.

так что производительность в общем часто зависит от того как скрипты писать да какие библиотеки использовать..
...
Рейтинг: 0 / 0
06.01.2021, 21:32
    #40033945
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
vikkiv,

букв много, даже все прочитал. Но не нашел ответа на посталенный вопрос.

Меряться пиписьками не собираюсь. Вопрос не в том, сколько школьников изучило Python. А в том, что я не так делал, что у меня R существенно по производительности обгонял Python?
Причем, чем длиннее были вектора, больше фильтраций (медианная, скользящим средним, ql-нормальным), трансформаций (Power, BoxCox), интерполяций (Seasonal Decomposition, Kalman Smoothing), кроссвалидаций и т.п. - тем больше по производительности выигрывал R.
...
Рейтинг: 0 / 0
06.01.2021, 21:40
    #40033947
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
vikkiv
у большинства с параллельностью проблемы (многопоточность/многоядерность/threads)

Проблемы с параллельностью решаются средствами PostgreSQL и dblink. То есть, R даже принудительно заставляю работать в один поток, но этих потоков запускаю из PostgreSQL функциями на plr по количеству доступных ядер.

vikkiv
Оба языка всё равно сктиптовые а не компилируемые

Подозреваю, что есть разница в реализации векторов R и массивов Python.

vikkiv
на R у MS вроде-бы нормально прикручены MKL библиотеки с их revoscaler , но он как-бы legacy в некотором смысле..
для Python тоже есть BLAS и пр.

OpenSource R под Linux без проблем собирается с BLAS и MKL. Но зато MS умудряется на один вызов R через sp_execute_external_script тратить почти 30 мс, тогда как plr в PostgreSQL вызывается меньше, чем 1 мс.
...
Рейтинг: 0 / 0
06.01.2021, 21:58
    #40033948
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
ptr128,

Ну не знаю, значит выходит для вашего круга задач больше подходит R
техническая часть - вполне возможно в каком-то узком сегменте и R лучше, где-то в др. расчётных вопросах - Python
много на чём можно написать (не только R/Python), оставить всё равно придётся что больше подходит по целому ряду причин.

напр. для меня вот один из основных критериев : размер рынка.. (как-бы взаимозависимое, платформы/вакансии/кандидаты)
если нет особых серьёзных перспектив найти работу (или сотрудников с необх. знаниями под проект)
- то и технология идёт лесом как-бы перспективна по производительности она не была

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

...
по MS смотреть архитектуру внутренностей надо (SQL Server/LaunchPad/BxlServer),
это запуск отдельного чистого/изолированного процесса/контейнера который вызывает R (или Py) среду (даже казалось-бы в прогретом варианте)
так что задержка ожидаема..
для некоторых сценариев в SQL Server подходят sp_rxpredict / predict()
(если модели легковесные)
...
Рейтинг: 0 / 0
06.01.2021, 22:08
    #40033949
H5N1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
vikkiv

библиотеки разные есть, у большинства с параллельностью проблемы (многопоточность/многоядерность/threads), R на больших объёмах будет вываливаться с ошибкой (если памяти не хватает, хотя некоторые коммерческие пакеты эту проблему в некотором плане решают), на Py с этим полегче.

разве там есть разница ? python с его пандасами же точно так же тупо тащит весь датасет в память.
...
Рейтинг: 0 / 0
06.01.2021, 22:35
    #40033954
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
H5N1
python с его пандасами же точно так же тупо тащит весь датасет в память.

Если вызывать plr или plpython, как функции из PostgreSQL, используя параметры-массивы и для исходных данных, и для результатов, то ни pandas ни dataframe просто не нужны. И быстре получается, чем тащить данные из БД средствами R или Python.
...
Рейтинг: 0 / 0
07.01.2021, 11:46
    #40034006
H5N1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
ptr128

Если вызывать plr или plpython, как функции из PostgreSQL, используя параметры-массивы и для исходных данных, и для результатов, то ни pandas ни dataframe просто не нужны. И быстре получается, чем тащить данные из БД средствами R или Python.

вряд ли это имеет смысл, это не spark, значит алгоритму питона данные нужно скормить целиком. это значит если данные в память не влазят, то и смысла нет. ну и есть сомнение, что plpython смогут несколько тредов запустить и хоть какая-то либа через такой костыль запуститься.
...
Рейтинг: 0 / 0
07.01.2021, 12:11
    #40034012
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
H5N1
вряд ли это имеет смысл, это не spark, значит алгоритму питона данные нужно скормить целиком. это значит если данные в память не влазят, то и смысла нет. ну и есть сомнение, что plpython смогут несколько тредов запустить и хоть какая-то либа через такой костыль запуститься.

Вы не заметили, что сами себе противоречите? Если задачу можно решать в несколько потоков, то совсем не обязательно одним вызовом скармливать ей весь объем данных сразу. Вам просто сложно осознать в голове концепцию того, что массу черновой работы по трансформации и очистке данных можно оставить на стороне SQL, отдавая plr/plpython только те задачи, которые они решают лучше, чем plpgsql. На практике, функции plr/plpython получаются довольно небольшими и простым. Ведь сам алгоритм реализуется в plpgsql. Бессмысленно кормить ту же ARIMA временной серией длиней нескольких сотен элементов. А вот подготовить временную серию длиной не более, чем в 300 элементов из миллиона - с этой задачей справляется plpgsql, задействуя оконные и/или агрегативные функции на R только в некоторые моменты.

Необходимое количество потоков не сложно реализовать через dblink средствами того же PostgreSQL. Это не менее эффективно, чем многопоточность средствами R или Python и позоволяет без особых проблем разпределять задачи не только между локальными ядрами, но и между серверами.

Что касается Spark, я его тоже рассматривал. Но для нашей задачи он оказался мало пригоден. Суть в том, что имея на входе свыше миллиарда событий, ML для тренинга достаются два миллиона разных по составу временных серий. Поэтому затраты на коммуникацию со Spark оказались существенно выше, чем передача в памяти массивов из PostgreSQL в R. Ведь и исходные данные и результаты все равно надо хранить в SQL БД.

P.S. plpython ограничений, по сравнению python почти не имеет. Точнее, это просто использование pyhton на прямую через so. Объективные ограничения возникают только из того, что консоли у такого python нет по определению.
...
Рейтинг: 0 / 0
07.01.2021, 13:04
    #40034022
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
На R вакансий нет. Слабое комьюнити.
Всё машинное обучение, с которым сталкивался - было на питоне. Так же на питоне куча либ и куча учебной информации.
Выучив питон - можно заниматься не только машинным обучением и аналитикой - но и бэкенд писать.
Питон гораздо универсальнее и востребованнее.
Для большинства задач можно сходу найти пример кода.
...
Рейтинг: 0 / 0
07.01.2021, 13:37
    #40034026
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев
Питон гораздо универсальнее и востребованнее.

Опять золотой молоток ?

Когда передо мной встала реальная задача, в которой потребовался ML я знал Python, но не знал R.
Но это мне совершенно не помешало за несколько дней изучить R в достаточном для НИОКР объеме.
Когда же я оценил производительность решений на R и Python, то оценил эффективность работы с векторами и матрицами в R и для этого конкретного проекта был выбран R.
На этом же проекты возникли проблемы с производительностью связки MS SQL+R Service. Зная PostgreSQL весьма поверхностно, я не поленился потратить несколько дней на его изучение и сравнить в данном применении связку PostgreSQL+R (plr). Последний выиграл с большим отрывом.

Если на следующем проекте на фазе НИОКР окажется эффективней Python - буду использовать его. Если вдруг окажется эффективней Julia - разберусь и с ней. Если эффективней окажется Spark или ClickHours - буду использовать их.
Никакого желания ограничивать себя "золотым молотком" не испытываю, чего и Вам желаю.

Я всегда искренне считал, что на этапе НИКОР просто необходимо рассматривать альтернативные варианты решения и сравнивать их. А не пытаться подогнать задачи проекта под уже освоенный "золотой молоток".
...
Рейтинг: 0 / 0
07.01.2021, 14:50
    #40034034
Александр Бердышев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
ptr128,
Ну, удачи тогда всё это поддерживать.
...
Рейтинг: 0 / 0
07.01.2021, 14:56
    #40034036
ptr128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Структуры интеллектуального анализа данных
Александр Бердышев,

так только первую версию в продуктив в декабре запустили. Даже еще не открыли вакансии для ТП.
Сам я собираюсь только помочь в организации поддержки. Все результаты НИОКР обсуждались с руководством, риски учитывались и выбор технологий был санкционирован. Так что, строго говоря, это уже давно не моя головная боль.

Для R специалист уже есть. River Logic + Gurobi тоже. Для PostgreSQL нужно нанимать. Но там тупая арифметика сработала. Попытка решить задачу на MS SQL требовала обязательно Enterprise из-за ограничения на 4 ядра у R Service у Standard. А это свыше 7 тыс. вечнозеленых ежемесячно за 32 ядра, которые еще планируется нарастить до 64-х (на двух серверах). За такие деньги нанять специалиста на поддержку более чем реально.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / SSAS Структуры интеллектуального анализа данных / 25 сообщений из 49, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]