моделирование цепей Маркова с матрицей начальной и переходной вероятностей - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть исходная матрица вероятности df [A1, B1, C1] 0,3 [A2, B2, C2] 0,2. , а также матрица перехода df

[A1 B1 C1] [A1 B1 C1] P11 [A2 B2 C2] [A2 B2 C2] P22

я хочу создать случайную цепочку Маркова для моделирования комбинация AB C на основе доступных значений df и их вероятностей

я пробовал этот код, но мне нужна помощь

rom коллекций import defaultdict, счетчик импорта случайный импорт numpy как импорт np sys import sys, random

tran_matrix = trans_matrix

initial_p = g1.values.tolist () initial_p

def make_pairs (initial_p):

for i in range(len(initial_p)-1):
    yield (initial_p[i],initial_p[i+1],initial_p[i+2])

pair = make_pairs (g1) pair

Создание словаря для пары комбинаций

comb_dict = {}

для comb_1 в парах: если comb_1 в comb_dict.keys () : comb_dict [comb_1] .append (comb_2) остальное: comb_dict [comb_1] = [comb_2]

Построение модели markov

first_comb = np.random.choice (initial_p)

while first_comb.islower (): first_comb = np.random.choice (initial_p)

chain = [first_comb] n_co mb = 94

для i в диапазоне (n_comb): chain.append (np.random.choice (comb_dict [chain [-1]])))

print (''. join ( цепь))

...