Как стать автором
Обновить

Мультифакторный анализатор деятельности произвольного предприятия на IEM-платформе

Время на прочтение 3 мин
Количество просмотров 4K
Всего голосов 15: ↑11 и ↓4 +7
Комментарии 14

Комментарии 14

Хорошая идея, но не хватает описания имеющихся данных.
Поскольку инструмент нужен универсальный, то нужно отталкиваться не от описания имеющихся данных (оно, конечно, есть), а от имеющихся метаданных. И сами данные и структура и наполнение метаданных описаны в документации, ее можно найти по приведенным ссылкам.
Пустое дело. Не существует общей теории всего. В таком подходе задача написания метаданных для любой проблемы сравнима по сложности с задачей поиска фрода, если не превосходит ее. Нужно идти по обычному пути — создать аналитическое ядро и навешивать на него интерфейсы для отдельных классов задач — финансовых, логистики, ритейла и т.д. Может, когда накопится опыт, удастся обобщить подходы и постепенно продвинуться к универсальной модели, но вряд ли слишком далеко
В данном случае не идет речь о общей теории всего.
Речь идет о поиске отклонений в весьма структурированном наборе данных.
И, если для скалярных параметров наверно можно использовать простые приемы типа среднего квадратичного (хотя я не пробовал) то для векторов я уже не знаю что делать. Классический вектор — последовательность событий с привязкой ко времени.
Речь идет о поиске отклонений в весьма структурированном наборе данных.


Я занимался поиском отклонений от типичного поведения в телефонных сетях. Если интересно — поделюсь опытом.
Интересно, полезны будут любые советы, но на текущем этапе желательно глубокое участие.
Для векторов хорошо подойдет кластеризация.
DmitryKogan в целом сказал правильно. Просто не счел нужным расшифровать. Ваша формулировка задачи действительно слишком общая. Почему?

Пара простых примеров. «Классический вектор — последовательность событий с привязкой ко времени.» Возьмем например график курса доллара. Задача казалось бы простая, но до сих пор никому не удалось построить хорошего робота для торговли на бирже в сколько нибудь долгосрочной перспективе. Все крупные ушли в HFT.

Есть два принципиально различающихся метода «прогноза». С учителем и без.
Все сколько нибудь результативные применения нейронных сетей в настоящее время работают по первому методу и строятся на обучающей выборке. (Да, Гугл написал «что-то» что само без учителя находит котиков. Ваша задача находить котиков? У вас есть ресурсы доступные Гуглу?) У вас есть обучающая выборка? Какая?

Если вы посмотрите, например, как устроен поиск внутри Гугла или Яндекса, то вы обнаружите там примерно то, что порекомендовал вамDmitryKogan.

П.С. Занимаюсь этим уже больше 10 лет. Могу проконсультировать.)
Александр, но нам не надо предсказывать курсы доллара. У нас совсем другая задача — найти выделяющийся чем-то объект анализа среди таких же. Это скорее задача интерполяции нежели экстраполяции. Согласитесь, задача интерполяции легко решается если мы что-то знаем о функции, например, что она гладкая. И тогда можно очень точно интерполировать. С экстраполяцией задача нерешаемая конечно.
Я нигде не сказал, что нейросеть должна обучаться сама. Я сказал, что возможно, мы сможем для нашего частного случая реализовать механизм обучения сети (с минимальным вмешательством человека — он задает что «от сих до сих — обучающая выборка, а дальше живут драконы»)

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

П.С. Как написано — я буду благодарен любым полезным советам. Можете подробнее описать, чем вы занимаетесь 10 лет, какие у вас предложения?
Без разницы ) Интерполяция это самый простой случай обучения с учителем. Если вы много знаете о функции то задача решается легко. (Простейший случай. По двум точкам найти уравнение прямой на плоскости. Обучающая выборка 2 точки. Но вы должны точно знать что это уравнение прямой. Коган вам примерно это и предложил. Опишите известные в рамках ваше предметной деятельности «уравнения» и способы их решения. Сделайте набор таких «уравнений». А дальше если повезет, то местами буду обобщения) Но вы скорее всего мало знаете о своей «функции» ) Уже по факту метода сбора и дискретизации данных в вашей задаче у вас нет уверенности, что «функция» хотя бы непрерывна.

Я не хочу вас испугать или отговорить ) Просто указываю, на мой взгляд, оптимальный путь. Ведь если существует решение в общем виде, таким способом вы его почти наверняка найдете. А если его не существует, то вы получите хотя бы часть решения, которое вполне возможно будет удовлетворять бизнес требованиям.
К сожалению, мы не можем себе позволить разбираться с конкретными процессами. Собственно, такой инструмент легко может быть заменен человеком, и результаты его будут лучше. Просто я рассматриваю средний вариант интерполяции — между ничего не знаем и «это прямая».

Почему вы отбрасываете вариант знаний «функция гладкая, с конечными известными мин и макс».
Это примерно то, что мы знаем про то, что происходит у нас. Осталось придумать, что такое интерполяция :)
Отбрасываю опираясь на собственный опыт. К сожалению, ничего точнее сказать нельзя не изучив конкретно вашу задачу(задачи).
Если вы хотите _только_ «У всех менеджерам по продажам примерно одинаковый оборот, рентабельность (прибыль), однако у одного нетипично много возвратов по гарантии.» такие случаи обнаруживать. То это решаемая (решенная, например системы безопасности серверов по анализу трафика) задача (класс задач, не обязательно менеджер и необязательно продажи любые отклонения от «стандартного» поведения. Дальше нужно аккуратно определить, что понимается под «стандартным»).
Но мне кажется, вы хотите еще что-то. Вам было бы полезно перечислить в постановке набор хотя бы основных (важных для бизнеса) случаев.
Мы работаем с разными бизнесами, и у всех есть свои детали. У кого-то нет менеджеров, есть склады, у кого-то нет ни менеджеров ни складов, только производства. На текущем этапе мы определяем стандартное поведение как поведение большинства. Для инструмента требуется аналитик — он может задавать субъективные значимости параметров, или чувствительность модели. Он же и задает, что мы собственно будем анализировать. Он может выбрать пользователей и попросить построить для них возможные факторы (мы их много можем сгенерить автоматически на основе метаданных), может попросить разработчика сделать механизм для расчета какого-то специального хитрого параметра. Результат анализа — кто тут отличается, и дальше аналитик разбирается почему. Если отличие «правильное» надо его как-то пометить, чтобы не было false positives.
Вот это уже похоже на правду. ) Я бы, на вашем месте, включил бы этот комментарий в описание задачи.
Такую задачу можно браться решать. За разумное время и разумный бюджет.
Можно начать с метода главных компонент для понижения размерности. А затем взять какой нибудь простой классификатор, для начала. Если правильно определить большинство (среднее, медианное, или хитрее) можно попробовать начать с пороговых классификаторов.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий