У меня есть исходная матрица вероятности 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 ( цепь))