Хорошая совместная фильтрация/сопоставление/библиотека рекомендаций для Python/Django?
Я ищу библиотеку, которую я могу использовать для сопоставления моих пользователей с другими моделями Django на основе ответов на вопросы - также моя собственная модель django.
Итак, мне нужно что-то настраиваемое, с хорошей документацией/поддержкой и, надеюсь, не слишком сложно реализовать!
Есть ли у кого-нибудь хорошие рекомендации? Я просмотрел Краб и Джанго-рекомендацию, но ни один из них не очень хорошо документирован.
в основном у меня есть два приложения для опроса, с соответствующими, но не идентичными вопросами и ответами. Например. вопрос в app1 может быть "сколько ночей в неделю вы пьете?" и вопрос в app2 может быть "сколько ночей в неделю вы ожидаете выпить?", с иностранным ключом к первому вопросу в этом случае. Я хочу принять ответы на эти вопросы и использовать их для сопряжения пользователей из каждого набора друг с другом, чтобы дать пользователям рекомендации группы 2 на основе того, что уже используют пользователи из группы 1.
Ответы
Ответ 1
Они освещали эту тему в свободном классе Стэнфорда ML. Проверьте видео в главе XVI на http://www.ml-class.org/course/video/preview_list
Хотя обсуждаемая реализация - Matlab/Octave, ее не составит труда реализовать на Python, еще проще, если вы используете Numpy
Ответ 2
Есть несколько хороших книг на тему социальных сетей в сочетании с Python.
Ответ 3
Очень гибкое решение, которое работает на любом языке кодирования (включая Python), это API-рекомендация Abracadabra.
В основном это алгоритмы-рекомендации как служебная библиотека. Настройка очень проста: вам нужно только отправлять HTTP-вызовы (которые вы можете делать с Django) на URL-адрес конечной точки API для обучения вашей модели и получения рекомендаций. Просмотрите документы.
С API-интерфейсом Abracadabra Recommendender при использовании Python
сначала добавьте данные в свою модель:
# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/add/subjects?recommenderId=rec1&subjectId=See+docs",
headers={
"X-Mashape-Key": "<required>",
"Accept": "application/json",
"Content-Type": "application/json"
}
)
Затем вы обучаете модель по рейтингу или любимым предметам (например, фильмы):
# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/rate/subject?recommenderId=rec1&subjectId=gameofthrones&subjectWeight=10&userId=user1",
headers={
"X-Mashape-Key": "<required>",
"Accept": "application/json",
"Content-Type": "application/json"
}
)
После этого вы получите рекомендации на основе контентной, совместной или гибридной фильтрации следующим образом:
# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/recommend?method=content&recommenderId=rec1&userId=user1",
headers={
"X-Mashape-Key": "<required>",
"Accept": "application/json",
"Content-Type": "application/json"
}
)
Вы можете просмотреть другой пример на других языках, включая Angular
, React
, Javascript
, NodeJS
, Curl
, Java
, Python
, Objective-C
, Ruby
, .NET
... на странице .