LINUX.ORG.RU

посчитать вероятности состояний

 ,


1

2

Пусть даны следующие последовательности состояний:

A-B-C-D
A-B-D-E
A-C-E
A-B-C-E
A-B
B-E
A-D-E
A-C

где входные состояния — A и B, выходные D,E,B и C, а также промежуточные A-B, B-C, C-D, B-D и т.д.

Я могу посчитать количество этих состояний и определить вероятность, например:

- входное состояние A случается 7 раз из 8, таким образом вероятность (7*100)/8=87.5% - переходное состояние A->B случается 4 раза, следовательно вероятность 50%

А вот как считать вероятность повторяющегося состояния, например:

A-B-C-C-C-C-C-D
A-B-D-E
A-C-E
A-B-C-C-C-C-E
A-B-C-C
B-E
A-D-E
A-C

В данном случае, состояние C->C сохраняется 8 раз, получается что с вероятностью 100% ?

IMHO, я что-то делаю/считаю не так.

Подскажите где я ошибаюсь. Спасибо!

★★

Дай угадаю:вышка нахер мне работать надо?

Anoxemian ★★★★★
()

А должно быть 50%: либо сохраняется, либо нет!

Ты же уже создавал похожую тему

ZERG ★★★★★
()

Вы путаете мокрое и соленое. Если Вас интересует просто вероятность состояния, то считаете число состояний C по всем измерениям, делите на число измерений - получаете состояние. A-C-C-B - вероятность C 50%.

Если Вас интересует вероятность перехода, то гуглите матрицы перехода в случайных процессах. В общем тоже ничего сложного, но есть нюансы.

AntonI ★★★★
()
Ответ на: комментарий от AntonI

Вы путаете мокрое и соленое. Если Вас интересует просто вероятность состояния, то считаете число состояний C по всем измерениям, делите на число измерений - получаете состояние. A-C-C-B - вероятность C 50%.

Если Вас интересует вероятность перехода, то гуглите матрицы перехода в случайных процессах. В общем тоже ничего сложного, но есть нюансы.

Спасибо за ответ.

Посмотрите plz https://drakkar.imag.fr/IMG/pdf/1569811033.pdf раздел III. У меня написан скрипт, которы парсит большое количество pcap-ов с TLS сессиями, из которых я строю граф состояний tls-сессии. Далее, в соответствии с документом (см. выше) нужно подсчитать вероятности переходов (transition probabilities). Там пишут:

The transition probability between states is derived from frequencies observed in the sequences [...]

Матрица переходов, о которой вы упомянули, уже содержит переходные вероятности, но как их считать?

Возможно уже есть соответствующая python-библиотека, которая рассчитает вероятности. После чего, получившуюся матрицу вероятностей, как я понимаю, можно скормит python-библиотеке реализующую цепи Маркова.

Понимаю, у меня сумбур в голове ))

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

Дык так и считать.

Пусть каждое состояние имеет свой номер. Тогда

states = […] # последовательность состояний

M = {} # матрица переходов

for i range(len(states)-1): M.setdefault((states[i], states[i+1]), [0])[0] += 1

как то так.

PS Я ХЗ почему у меня lorcode не работает

AntonI ★★★★
()
Последнее исправление: AntonI (всего исправлений: 2)
Ответ на: комментарий от AntonI
states = […] # последовательность состояний
M = {} # матрица переходов

for i in range(len(states)-1):
   M.setdefault((states[i], states[i+1]), [0])[0] += 1

Здесь вы считаете частоту состояний. Но ведь матрица переходов содержит вероятности переходов из одного состояния в другое.

cruz7 ★★
() автор топика
Ответ на: комментарий от cruz7

Нет, здесь считается именно частота переходов.

AntonI ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.