У меня есть приложение, в котором я анализирую систему, в которой существует большое количество взаимодействий. И мне нужно сделать определенный выбор, основанный на частоте появления уникальных предметов в системе. Например, если у вас был этот список букв:
A, B, F, G, A, T, S, B, S, B, S, Q, Z, B, Q, S
Вот список, показывающий, как часто встречается каждая буква (вхождения):
A - 2
B - 4
F - 1
G - 1
Q - 2
T - 1
S - 4
Z - 1
Таким образом, частота вхождений как таковых (вхождения):
4 - 2
2 - 2
1 - 4
Выше приведен крошечный пример, но я прикрепил изображение, представляющее собой простой линейный график более крупной системы
На этом графике цифры внизу не очень важны. Они просто отмечают количество уникальных частот. И ось Y отмечает значение этой частоты.
То, что я ищу, - это математический / программный способ найти точку, где эта линия начинает ломаться вверх. Мои поиски не дали того, что я ищу, потому что я не совсем уверен, что такое правильная терминология или название концепции.
Прямо сейчас мы должны вручную выбрать эту точку, основываясь на человеке, который смотрит на цифры и говорит «здесь». Но я хочу, по крайней мере, уже выбрать «рекомендуемое» значение и, самое большее, полностью удалить человеческий компонент.
Для пояснения, мой текущий алгоритм создает список пар чисел, встречающихся по частоте встречаемости. Мое использование слова «частота» никоим образом не относится к электромагнитным сигналам, а скорее к тому, как часто происходит событие. Но я подумал, что говорить «происшествия» будет более запутанным!
В этой системе общая тенденция заключается в том, что несколько объектов будут отображаться в большом количестве взаимодействий, большее количество объектов будет отображаться в среднем количестве взаимодействий, но наибольшее количество объектов будет отображаться в нескольких или даже нет, взаимодействия. Было бы сложно представить сценарий, в котором он отличался бы от этого ... в худшем случае, вероятно, было бы плато. Но после прыжка в любой момент от начала до конца определенно может произойти падение. Иллюстрация выше просто не показывает это. Мы не можем предполагать, что будет точка, в которой он начнет расти без капель после этого.
Вот мои данные. (Простой график, приведенный выше, был получен только с данными столбца Частота вхождения):
Этот список, как вы можете видеть, отсортирован в порядке убывания в столбце вхождения. Это из небольшой системы с 904 уникальными объектами. Эти объекты имеют 38 уникальных показателей возникновения. Если бы вы начали с этого списка, вы могли бы сказать:
"2 entities occur 309 times"
"1 entity occurs 130 times"
etc.
В конечном итоге я пытаюсь определить важность сущности, основанной на том, как часто это происходит в системе. Мне нужно иметь возможность пометить определенные элементы как «важные», но все элементы не могут быть важными. И метод / алгоритм, который я ищу, поможет определить, в какой момент в этом списке я перестаю считать пункты важными.
Если вы посмотрите на список, вы увидите, где более низкие вхождения становятся более частыми. Я не думаю, что могу отсортировать по правому столбцу, потому что левый столбец - это действительно ключевые данные. Большие случаи = больше важности.
Но мне все еще нужно выяснить, как это определить.