Как реализовать анализ ассоциативных правил или анализ корзины с нуля?

Я пытался просмотреть многочисленные статьи, пытаясь понять, каким должен быть мой первый шаг к включению ассоциативного анализа (может быть, анализ "Корзины рынка") в мою систему. Все они углубляются в реализацию алгоритма, но никто не говорил о том, как хранить данные в первую очередь. Я буду очень признателен, если кто-нибудь может дать мне несколько указателей на начало или ссылки на статьи, с которых я могу начать.

Первое, что я хочу реализовать, - это отслеживать клики пользователей и предоставлять предложения на основе отслеживаемых данных. Например, пользователь щелкнул ссылку A, а затем ссылку B и ссылку C. Я могу отслеживать эту активность по некоторым метаданным (пользователь, организация пользователя, роль пользователя и т. Д.).

Я не хочу, чтобы это ограничивалось только ссылками. В будущем я хочу добавить в систему ряд аналогичных случаев и сделать ее умной. Например, если пользователь установил определенные значения для полей A и B, скорее всего, он / она установит значение <bla> для поля С.

Моя система может генерировать несколько тысяч таких точек данных в день (например, клики пользователей, выбор полей и т. Д.).

Ниже приведены мои вопросы:

  1. Как мне хранить мои данные? Go SQL или No SQL (я кратко посмотрел на БД Mongo, и он выглядел многообещающе)

  2. Какой инструмент я должен использовать для проведения ассоциативного анализа? Могу ли я использовать инструменты с открытым исходным кодом?

1 ответ

Решение
  1. Это зависит. Подходят ли ваши данные для баз данных NoSql? Чтобы ответить на этот вопрос, лучше прочитать теорему CAP и ее тематические исследования: https://en.wikipedia.org/wiki/CAP_theorem или http://robertgreiner.com/2014/06/cap-theorem-explained/. Когда-нибудь вы захотите согласованности (в зависимости от ваших данных) и доступности =>, чтобы лучше использовать реляционные базы данных, такие как Mysql (попробуйте прочитать примеры из практики и проанализировать свои данные, чтобы выбрать лучшие инструменты)

  2. Существует большое количество библиотек с открытым исходным кодом, но, на мой взгляд, лучше сначала прочитать некоторые концепции и алгоритмы. Попробуйте поискать алгоритмы Apriori, ECLAT, FP- GROWTH и получить их понятия. тогда вы можете выбрать инструмент или написать код самостоятельно. Некоторые полезные инструменты (в зависимости от вашего языка программирования):

Python: https://github.com/asaini/Apriori, https://github.com/enaeseth/python-fp-growth, https://github.com/enaeseth/python-fp-growth/blob/master/fp_growth.py

PHP: https://github.com/sigidhanafi/fp-growth-php

JAVA: https://github.com/goodinges/FP-Growth-Java, http://www.philippe-fournier-viger.com/spmf/

Также вы можете использовать Spark: https://spark.apache.org/docs/1.1.1/mllib-guide.html

Другие вопросы по тегам