Pull to refresh

Comments 15

Использовать будем python, так как данный ЯП наиболее подходит для реализации подобных алгоритмов.

if
elif
elif
elif
elif
elif



С наибольшей уверенностью этот язык хвалят те, кто больше ни на каком в жизни не писал…
Моя предыдущая статья была на языке C++. Реализовывать там этот алгоритм с контейнером map было бы менее приятно, чем в python со встроенным типом словарей.

Чем вам не нравится конструкция if-elif? Ну было бы в си-подобных:

switch
case
case
case
case
case
На питоне это обычно делается например так:
handlers = {
  0: sys.exit,
  1: DictGen,
  2: DictLoad,
}
handlers[int(input("#-> "))]()

Что касается самой статьи — увы, она очень слабая, особенно с учетом того что на хабре уже есть много хороших статей по коллаборативной фильтрации, например эта или эта.
Ну не знаю, какой-то школьный уровень. Программа уровня hello world. Будь она хотя бы на Scala на большом массиве данных с графиками, анализом, применением в боевых условиях.

А так, полезность статьи не намного превышает полезность статьи на той же википедии, ну раз ве что там нет кода с зацикленным циклом и кучей if else условий.
Школьный уровень это разводить холивары вроде «надо было Scala, потому что мне так хочется, так как python я не люблю за отсутствие switch-case»

Ну, школьный — не школьный, но после формулы расстояния между точками дальше всё уже очевидно.

Коллаборативная фильтрация — это не нахождение расстояния между наборами, это немножко более сложный алгоритм. У вас нет никакого "сотрудничества" в алгоритме, вы просто считаете расстояние. У вас, по факту, content-based recommendation.


Ну и отдельно, конечно, интересно, как вы предлагаете применять этот алгоритм в живой реальности, когда у вас количество сравниваемых объектов уже не позволяет использовать алгоритмы с линейной сложностью (на самом деле, n log n, вам их потом еще и отсортировать надо).

Спасибо большое за дельный комментарий.

В Т. Сегаране именно эту методу тоже называют коллаборативной фильтрацией.

Я эту статью специально пометил как «введение». Насчет сложности — вы правы, И я это, быть может криво, указал в разделе «Вместо вступления».
В Т. Сегаране именно эту методу тоже называют коллаборативной фильтрацией


И кто же именно здесь с кем сотрудничает? И где здесь пользователи, на которых это основано?
Пользователи — люди, которые прошли опросник. Сотрудничество реализовать через коэффициент отличия между пользователями, пары с минимальным этим коэффициентом использовать в рекомендационной системе ( одному человеку рекомендовать другого, а тому другому — первого ).
Сотрудничество реализовать через коэффициент отличия между пользователями, пары с минимальным этим коэффициентом использовать в рекомендационной системе ( одному человеку рекомендовать другого, а тому другому — первого ).


Это не сотрудничество, это обычный content-based. Сотрудничество — это когда для рекомендации одному человеку чего-то используются оценки, поставленные этому чему-то другим человеком.

А толку? У вас как не было коллаборации, так и нет.

Sign up to leave a comment.

Articles