Отлично, но если перевести немного в более доступную форму: цепочка - набор последовательных действий, правильно понял? "Среднестатистический показатель появления" - именно время, верно?
Чувствуя вашу компетенцию, хотелось бы поднять еще одну тему. Сергей рассказал в комментариях про марковские цепочки, я ознакомился с материалом и родился следующий алгоритм. Представим карту сайта и матрицу, где ij - вероятность перехода пользователя с i-ой страницы на j-ю, составленную на основе его предыдущей статистики. Подходит ли данный метод для обнаружения подозрительных действий основываясь на величине отклонения от ij? При этом я понимаю, что это принципиально отличается от вашего способа, т.к. марковские цепочки не обладают памятью, меня больше интересует вопрос возможности применения, может я чего-то упустил из виду и это не может работать по определению.
Уже отвечал в комментариях: "подозрительная активность" - любое действие, вытекающие из привычного хода событий. По поводу приведенного вами примера - это статичная картина, именно поэтому и поднят вопрос машинного обучения. Может быть пользователю это действительно нужно: сидеть и постоянно переименовывать каталоги, система должна быть готова и к подобной модели поведения. Алгоритм должен динамически составить модель пользователя и потом каждое действие пытаться вписать в эту модель, то есть высчитывать некое отклонение от "нормального" поведения.
Возвращаясь к практике: я строю статический граф, где после каждого действия есть возможный набор других действий и по пользовательской статистике присваиваю вероятность каждому действию или как-то иначе ее высчитываю? что делать дальше с подобной информацией мне понятно, непонятен именно момент получения вероятности.
Так в тот то и дело, что определить подозрительные метрики невозможно, их либо нет вообще, либо критически мало, что провести какую-то классификацию. Из того что я читал и как я понял материал, именно поэтому эта задача и относится к обучению без учителя. А по поводу самого определения - любое действие, выбивающееся из привычного хода событий. Я пытался решить эту задачу с использованием наивного байесовский классификатора, но по уже определенным причинам просто не смог объяснить классификатору, что такое плохо.
Полностью с вами согласен и по поводу сложности задачи, и по поводу неэффективности того, о чем я спрашивал, но нюанс в том, что именно по этому я об этом и спрашиваю. Я не планирую связывать свою жизнь с этим и как-то детально разбираться в этой области, я хочу просто это прочувствовать, хотя бы на таких примитивных примерах, сделать хоть что-то, что хоть как-то работает, не более.
Пишу в первую очередь с целью самообразования. Тест статичен (список вопросов не является тайной), грузиться полностью с сервера клиенту, далее за все отвечает JS, пока не придет пора узнать результаты, для этого идет запрос на сервер, возможно будет Ajax.
Большое спасибо, в итоге переустановил систему, так как и флешку решил немного по другому поделить (первый раздел для "флешковых" нужд, ntfs, сделал поменьше и от LUKS отказался. Поставил много основных дров, на brtfs теперь все со сжатием и trim, статья пригодилась, например не знал, что следует autodetect убирать. Модификация исходника - скорее всего подойдет, но это надо разбираться, сейчас нет ни времени, ни желания, но в список на почитать занёс. Еще раз спасибо!
Сложностью встроить данный метод конкретно в этот проект, с его взаимосвязями объектов и прочим. Использование time.AfterFunc потребовало бы гораздо большей реорганизации кода. В целом да, это решение.
Я думал об этом, сложно объяснить почему отказался, собственно и не буду.. Но это конкретно в данном проекте, в других подобных задачах это эффективное решение. В дополнение, я не знал, что time.AfterFunc создает ссылку на таймер, не знал что он вообще работает поверх него, за что отдельное спасибо.
Да, спасибо, подобное было одним из моих "несколько вариантов". Я не хочу говорить за производительность, не думал в эту сторону, в плане каково оно регулярно бегать по всем сессиям за место потока и сна для каждой, но как минимум чисто из соображений эстетичности мне данный вариант не сильно понравился, но он естественно имеет право на жизнь.
Чувствуя вашу компетенцию, хотелось бы поднять еще одну тему. Сергей рассказал в комментариях про марковские цепочки, я ознакомился с материалом и родился следующий алгоритм. Представим карту сайта и матрицу, где ij - вероятность перехода пользователя с i-ой страницы на j-ю, составленную на основе его предыдущей статистики. Подходит ли данный метод для обнаружения подозрительных действий основываясь на величине отклонения от ij? При этом я понимаю, что это принципиально отличается от вашего способа, т.к. марковские цепочки не обладают памятью, меня больше интересует вопрос возможности применения, может я чего-то упустил из виду и это не может работать по определению.