|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Добрый день, коллеги. На локальном компьютере в Developer версии сервера поднял SSAS. Компьютер мощный (SSD, i7). Сделал локально же куб (от миллиона до 5 миллионов записей, 10 измерений), пытаюсь на основе этого куба построить "структуру интеллектуального анализа данных" на деревьях (самый базовый алгоритм), для прогнозирования. Куб считается минут за 5, но модель обрабатывается очень долго - почти сутки. Можете подсказать, где можно почитать что происходит, когда идёт обработка модели интеллектуального анализа данных и каким образом можно её ускорить? В интернете, к сожалению, подробной информации не нашёл - на MSDN очень мало информации и она очень поверхностная, нигде не могу найти более глубокую информацию... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 16:58 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев, 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:36 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышевна деревьях у 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 (на диапазоны) - превратив в дискретные, очень облегчает нагрузку ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:47 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:48 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Понятно, спасибо. Видимо делать прогнозирование на SSAS - было очень плохой идеей... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 19:09 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев, ну очень это слишком конечно как расчётная часть - есть легкодоступные инструменты намного более производительные, современнее, перспективней и гибче (в плане алгоритмов/настроек/автоматизации) хотя если есть желание и ограничения - 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, вопрос нужно-ли.. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 19:37 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр, тут вопрос в том, что Вы прогнозируете. И сколько факторов учитываете при прогнозе (я так понял, порядка десятка). Т.е. одно дело - ритейл, другое - потребление электроэнергии или курс валют. Есть множество алгоритмов (и решений), каждый из которых лучше подходит для той или иной задачи, как и набор наиболее влияющих факторов. Есть "универсальные" инструменты (навскидку назову Oracle Demantra, т.к. IBM SPSS требует более детальной подготовки данных потому как многофакторный анализ во весь рост, JDA больше заточен под дистрибуцию и ритейл, тем более - легкие решения типа ForecastPro, сотни их), которые прогоняют разные модели с различным набором параметров, потом "разворачивают назад" регрессионным анализом, смотрят какой алгоритм лучше ложится на исходные данные, строят доверительный интервал прогноза и подбирают наилучший алгоритм. В любом случае, очень много зависит от качества исходных данных - их надо готовить (убирать выбросы, связанные с маркетинговыми кампаниями и т.д., где не было остатков и были нули - заполнять по среднему) и кол-ва параметров - если вы в данные не запихнете календарь / сезон / праздники (постоянные и с "мягкой" датой) - их не один алгоритм не учтет, хоть R хоть databricks. Что за задача? Ритейл? С Уважением, Георгий ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 09:29 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
George Nordic, Задача - логистика. Машины ездят туда-сюда, грузы возят. По одному направлению могут за месяц 5 раз проехать, а потом за год ни разу. А есть очень популярные направления. Поток машин и стоимость зависят от сезонности и даже дня недели - будни или выходные. Цена перевозки зависит от веса, типа груза, и ещё кучи параметров. Хотел алгоритм - чтобы просто в него загнал все данные, он долго-долго думал, а потом построил модель, которая идеально всё прогнозировала. Но насколько понял - так не бывает - нужно будет самому искать закономерности, делать модель и долго муторно её отлаживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 13:02 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр БердышевХотел алгоритм - чтобы просто в него загнал все данные, он долго-долго думал, а потом построил модель, которая идеально всё прогнозировала.Да, мы все хотим большую красную кнопку... ты ему курс акций и фазы луны, а она - когда покупать блокчейн Александр БердышевНо насколько понял - так не бывает - нужно будет самому искать закономерности, делать модель и долго муторно её отлаживать.Да, увы. Плюс акции конкурентов, а то Грузовичков или ДелЛин как запустят акцию - модель может поехать. Кстати, если корпоратов много, надо еще договора грузить.. Цены конкурентов, их акции. Можно, конечно, и без этого, но точность модели будет меньше. Вам даже еще сложнее - производная от спроса. т.е. надо смотреть что перевозят, а потом - сколько из этого Вами. Удачи! С Уважением, Георгий ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 16:51 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев Понятно, спасибо. Видимо делать прогнозирование на SSAS - было очень плохой идеей... На будущее потомкам: весь анализ данных и машинное обучение - делать только на питоне. Просто потому что. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 20:08 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев, питон оказался той красной кнопкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 20:47 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев весь анализ данных и машинное обучение - делать только на питоне. Странно. Сколько ни тестировал, Python уступал R по производительности. Причем существенно. Что я не так делал? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 20:58 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Нативная поддержка на всех основных платформах, 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-ьках прошлого века, которые в нынешнем мире уровень сразу после начальных классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 21:11 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
ptr128, библиотеки разные есть, у большинства с параллельностью проблемы (многопоточность/многоядерность/threads), R на больших объёмах будет вываливаться с ошибкой (если памяти не хватает, хотя некоторые коммерческие пакеты эту проблему в некотором плане решают), на Py с этим полегче. Оба языка всё равно сктиптовые а не компилируемые, так что отличие производительности на порядок(00 порядки?) вполне ожидаемо по ср. с тем-же C# и немногим больше c C/C++ numpy/pandas вроде как немного получше, pyspark и того производительнее на многих операциях (но как-бы и не вопрос, всё-таки просто прямой интерфейс к спарку) на R у MS вроде-бы нормально прикручены MKL библиотеки с их revoscaler , но он как-бы legacy в некотором смысле.. для Python тоже есть BLAS и пр. так что производительность в общем часто зависит от того как скрипты писать да какие библиотеки использовать.. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 21:21 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
vikkiv, букв много, даже все прочитал. Но не нашел ответа на посталенный вопрос. Меряться пиписьками не собираюсь. Вопрос не в том, сколько школьников изучило Python. А в том, что я не так делал, что у меня R существенно по производительности обгонял Python? Причем, чем длиннее были вектора, больше фильтраций (медианная, скользящим средним, ql-нормальным), трансформаций (Power, BoxCox), интерполяций (Seasonal Decomposition, Kalman Smoothing), кроссвалидаций и т.п. - тем больше по производительности выигрывал R. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 21:32 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
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 мс. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 21:40 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
ptr128, Ну не знаю, значит выходит для вашего круга задач больше подходит R техническая часть - вполне возможно в каком-то узком сегменте и R лучше, где-то в др. расчётных вопросах - Python много на чём можно написать (не только R/Python), оставить всё равно придётся что больше подходит по целому ряду причин. напр. для меня вот один из основных критериев : размер рынка.. (как-бы взаимозависимое, платформы/вакансии/кандидаты) если нет особых серьёзных перспектив найти работу (или сотрудников с необх. знаниями под проект) - то и технология идёт лесом как-бы перспективна по производительности она не была хотя с др. стороны если затраты на все эти заморочки с поиском экзотики существенно окупаются (конкурентными) преимуществами (напр. обеспечивают лидирующую роль на рынке по ср. с другими) то почему-бы и нет (с поправкой на риски).. но ровно до тех пор пока всё это окупается лучше против других альтернатив... ... по MS смотреть архитектуру внутренностей надо (SQL Server/LaunchPad/BxlServer), это запуск отдельного чистого/изолированного процесса/контейнера который вызывает R (или Py) среду (даже казалось-бы в прогретом варианте) так что задержка ожидаема.. для некоторых сценариев в SQL Server подходят sp_rxpredict / predict() (если модели легковесные) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 21:58 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
vikkiv библиотеки разные есть, у большинства с параллельностью проблемы (многопоточность/многоядерность/threads), R на больших объёмах будет вываливаться с ошибкой (если памяти не хватает, хотя некоторые коммерческие пакеты эту проблему в некотором плане решают), на Py с этим полегче. разве там есть разница ? python с его пандасами же точно так же тупо тащит весь датасет в память. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 22:08 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
H5N1 python с его пандасами же точно так же тупо тащит весь датасет в память. Если вызывать plr или plpython, как функции из PostgreSQL, используя параметры-массивы и для исходных данных, и для результатов, то ни pandas ни dataframe просто не нужны. И быстре получается, чем тащить данные из БД средствами R или Python. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2021, 22:35 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
ptr128 Если вызывать plr или plpython, как функции из PostgreSQL, используя параметры-массивы и для исходных данных, и для результатов, то ни pandas ни dataframe просто не нужны. И быстре получается, чем тащить данные из БД средствами R или Python. вряд ли это имеет смысл, это не spark, значит алгоритму питона данные нужно скормить целиком. это значит если данные в память не влазят, то и смысла нет. ну и есть сомнение, что plpython смогут несколько тредов запустить и хоть какая-то либа через такой костыль запуститься. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 11:46 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
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 нет по определению. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 12:11 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
На R вакансий нет. Слабое комьюнити. Всё машинное обучение, с которым сталкивался - было на питоне. Так же на питоне куча либ и куча учебной информации. Выучив питон - можно заниматься не только машинным обучением и аналитикой - но и бэкенд писать. Питон гораздо универсальнее и востребованнее. Для большинства задач можно сходу найти пример кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 13:04 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев Питон гораздо универсальнее и востребованнее. Опять золотой молоток ? Когда передо мной встала реальная задача, в которой потребовался ML я знал Python, но не знал R. Но это мне совершенно не помешало за несколько дней изучить R в достаточном для НИОКР объеме. Когда же я оценил производительность решений на R и Python, то оценил эффективность работы с векторами и матрицами в R и для этого конкретного проекта был выбран R. На этом же проекты возникли проблемы с производительностью связки MS SQL+R Service. Зная PostgreSQL весьма поверхностно, я не поленился потратить несколько дней на его изучение и сравнить в данном применении связку PostgreSQL+R (plr). Последний выиграл с большим отрывом. Если на следующем проекте на фазе НИОКР окажется эффективней Python - буду использовать его. Если вдруг окажется эффективней Julia - разберусь и с ней. Если эффективней окажется Spark или ClickHours - буду использовать их. Никакого желания ограничивать себя "золотым молотком" не испытываю, чего и Вам желаю. Я всегда искренне считал, что на этапе НИКОР просто необходимо рассматривать альтернативные варианты решения и сравнивать их. А не пытаться подогнать задачи проекта под уже освоенный "золотой молоток". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 13:37 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
ptr128, Ну, удачи тогда всё это поддерживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 14:50 |
|
SSAS Структуры интеллектуального анализа данных
|
|||
---|---|---|---|
#18+
Александр Бердышев, так только первую версию в продуктив в декабре запустили. Даже еще не открыли вакансии для ТП. Сам я собираюсь только помочь в организации поддержки. Все результаты НИОКР обсуждались с руководством, риски учитывались и выбор технологий был санкционирован. Так что, строго говоря, это уже давно не моя головная боль. Для R специалист уже есть. River Logic + Gurobi тоже. Для PostgreSQL нужно нанимать. Но там тупая арифметика сработала. Попытка решить задачу на MS SQL требовала обязательно Enterprise из-за ограничения на 4 ядра у R Service у Standard. А это свыше 7 тыс. вечнозеленых ежемесячно за 32 ядра, которые еще планируется нарастить до 64-х (на двух серверах). За такие деньги нанять специалиста на поддержку более чем реально. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2021, 14:56 |
|
|
start [/forum/topic.php?fid=49&msg=39859539&tid=1857209]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 259ms |
total: | 379ms |
0 / 0 |