Марковская матрица переходов - PullRequest
1 голос
/ 07 января 2020

Я ищу способ вычисления матрицы переходов Маркова из списка транзакций клиентов на веб-сайте электронной коммерции.

В основном мне потребуется матрица nxn с n в качестве числа приобретенных продуктов, и в каждом В строке будет вероятность, скажем, покупки продукта 1, у меня есть X вероятность покупки продукта 2, y вероятность покупки продукта 1 снова и так далее. Мы можем предположить, что начальным состоянием является массив с 1 для продукта 1 и 0 для всех других продуктов (сейчас мы только что купили продукт 1).

Существует ли какая-то упаковка типа python рассчитать вероятности перехода матрицы для меня, предоставляя данные покупки? Во всех примерах, которые я смотрел, люди просто кормили предварительно вычисленную матрицу.

Заранее спасибо

1 Ответ

0 голосов
/ 07 января 2020

В качестве первого шага вы можете использовать markovchain пакет. Вы можете найти более подробную информацию об этом пакете здесь . Вы можете установить его, используя pip install markovchain, а затем вычислить матрицу перехода, обучив текстовую базовую модель Маркова. Например:

from markovchain.text import MarkovText, ReplyMode

markov = MarkovText()

with open('data.txt') as fp:
    markov.data(fp.read())

with open('data2.txt') as fp:
    for line in fp:
        markov.data(line, part=True)
markov.data('', part=False)

print(markov())
print(markov(max_length=16, reply_to='sentence start', reply_mode=ReplyMode.END))

markov.save('markov.json')

markov = MarkovText.from_file('markov.json')
...