Андорро, ты хотел чтобы побольше людей приходило, но если объявлять встречи за день это явно сократит их количество, многие уже могли что-либо запланировать
Почему-то появился объект 9651(третий с конца) хотя у него оценки сильно разнятся
Автор ответил:
По поводу использования метрик: предположим, у нас есть три вектора (10, 10, 1), (1, 1, 0) и (0, 0, 1). Согласно евклидовому расстоянию наиболее близки вектора 2 и 3, а по косинусной метрике — 1 и 2, что более корректно.
Выбор метрики обусловлен конкретной задачей
я не сделал ни одного математического действия
я ошибся во второй группе, там Иван и Давид(у Алекса и Давида вообще нет пересечений)
все остальные числа из статьи:
схожесть группы №1 = 0.51
схожесть группы №2 = 0.06
спасибо за статью, я все ещё пишу свой рекомендательный сервис и решил поспрашивать
Давайте рассмотрим Алекса, Ивана и Давида
Группа №1: у Алекса и Ивана одно пересечение №1, оценки 5 и 4 соответственно
Группа №2: у Алекса и Давида одно пересечение №6, оценки 1 и 2 соответственно
Первой группе обоим нравится один фильм, а второй обоим один фильм не нравится
Косинусная мера считает, что Группа №1 в десять раз более схожая, чем Группа №2
Мне кажется, что тут явная логическая ошибка… Как бы вы могли прокомментировать данное поведение(если можно с живыми примерами)?
в третьей версии так и есть для строк:
>>> 'fff' > 2
Traceback (most recent call last):
File "<pyshell#6>", line 1, in 'fff' > 2
TypeError: unorderable types: str() > int()
а вообще это обычное приведение типов, не в этом ничего страшного
но в Питоне также можно наделать генераторов, цепочки вызовов и так далее, потому что он слабо ограничивает программиста и там уже все может получиться сложнее чем должно бы быть
нет, в Питоне нет приватных методов и свойств из коробки(можно попробовать переписать метод __getattr или __call). __ защищает от возможности переопределения методов.
спасибо за статью
хочу узнать ваше мнение по следующему вопросу:
делаю небольшой свой рекомендательный сервис, в статье на Википедии одним из алгоритмов для этого является kNN
Первоначальную разбивку на группы собираюсь делать методом к-средних, тк нет первоначальных групп
Чем лучше определять принадлежность к данной группе? Методом kNN или Расстоянием до центра элипсойда, который получается при k-means? или я делаю какую-то ерунду?
Некоторые любят заниматься
— «обычным, русским, кухонным нытьем»
и на эту тоже приду
(11382, (0.9945617655513243, 6.0))
(25881, (0.9946889722415817, 10.44030650891055))
(32657, (0.9948579893001871, 4.58257569495584))
(11642, (0.9949290831814581, 4.898979485566356))
(29796, (0.9950464316093013, 5.656854249492381))
(31417, (0.9951124675317691, 6.782329983125268))
(40530, (0.9952102629001573, 4.58257569495584))
(8311, (0.9952136477352348, 5.830951894845301))
(37772, (0.995641393209143, 4.47213595499958))
(11087, (0.9964597867088298, 4.795831523312719))
(9641, (0.996734136199907, 3.7416573867739413))
(9651, (0.9969863072847556, 30.04995840263344))
(22462, (0.9972173920027746, 3.3166247903554))
(6309, (0.9999999999999999, 0.0))
Почему-то появился объект 9651(третий с конца) хотя у него оценки сильно разнятся
Автор ответил:
я так и не понял почему это более коректно
я ошибся во второй группе, там Иван и Давид(у Алекса и Давида вообще нет пересечений)
все остальные числа из статьи:
схожесть группы №1 = 0.51
схожесть группы №2 = 0.06
Давайте рассмотрим Алекса, Ивана и Давида
Группа №1: у Алекса и Ивана одно пересечение №1, оценки 5 и 4 соответственно
Группа №2: у Алекса и Давида одно пересечение №6, оценки 1 и 2 соответственно
Первой группе обоим нравится один фильм, а второй обоим один фильм не нравится
Косинусная мера считает, что Группа №1 в десять раз более схожая, чем Группа №2
Мне кажется, что тут явная логическая ошибка… Как бы вы могли прокомментировать данное поведение(если можно с живыми примерами)?
>>> 'fff' > 2
Traceback (most recent call last):
File "<pyshell#6>", line 1, in 'fff' > 2
TypeError: unorderable types: str() > int()
а вообще это обычное приведение типов, не в этом ничего страшного
не самая лучшая книга по программированию — слишком много повторов и воды, но лучше книги я не нашел
Сейчас идет переход с 2 на 3 версию питона и приходится запоминать много нюансов в обоих
В любом случае Питон захватывает и это окупает любые трудности на его изучение
(Читаемый синтаксис) ∈ (качество ПО)
но в Питоне также можно наделать генераторов, цепочки вызовов и так далее, потому что он слабо ограничивает программиста и там уже все может получиться сложнее чем должно бы быть
where Ixy is the set of items rated by both user x and user y
возможно у них ошибка
Попробую с полной длиной, тогда разница с евклидовым расстоянием будет яснее
Главный вопрос зачем пользоваться косинусной метрикой, если Евклидово расстояние показывает тоже самое?
(11382, (0.9945617655513243, 6.0))
(25881, (0.9946889722415817, 10.44030650891055))
(32657, (0.9948579893001871, 4.58257569495584))
(11642, (0.9949290831814581, 4.898979485566356))
(29796, (0.9950464316093013, 5.656854249492381))
(31417, (0.9951124675317691, 6.782329983125268))
(40530, (0.9952102629001573, 4.58257569495584))
(8311, (0.9952136477352348, 5.830951894845301))
(37772, (0.995641393209143, 4.47213595499958))
(11087, (0.9964597867088298, 4.795831523312719))
(9641, (0.996734136199907, 3.7416573867739413))
(9651, (0.9969863072847556, 30.04995840263344))
(22462, (0.9972173920027746, 3.3166247903554))
(6309, (0.9999999999999999, 0.0))
Почему-то появился объект 9651(третий с конца) хотя у него оценки сильно разнятся
возможно я ошибся в коде:
спасибо, то что нужно
хочу узнать ваше мнение по следующему вопросу:
делаю небольшой свой рекомендательный сервис, в статье на Википедии одним из алгоритмов для этого является kNN
Первоначальную разбивку на группы собираюсь делать методом к-средних, тк нет первоначальных групп
Чем лучше определять принадлежность к данной группе? Методом kNN или Расстоянием до центра элипсойда, который получается при k-means? или я делаю какую-то ерунду?