- PVSM.RU - https://www.pvsm.ru -
Недавно смотрел серию [1] видео популяризатора математики. Там он пытается рассказывать про математический анализ и линейную алгебру немного с позиции человека, который «как бы» изобрел бы ее с нуля. То есть пытается делать доступными простые и понятые визуализации относительно сложных концепций, как бы объясняя их с позиции человека, который как будто бы придумал это впервые. Относительно недавно читал статью [2]на Хабре про unsupervised learning и увидел там раздел про Affinity Propagation [3]. Как оказалось, мы использовали именно этот метод кластерного анализа чисто интуитивно, сами того не ведая.
TLDR для данной статьи. Если хотите интерактивную визуализацию, проследуйте сюда [4].
В данной визуализации в виде графа показаны связи между музыкальными жанрами ~25,000 самых популярных артистов мира, причем размер кругляшка показывает популярность данного жанра, а размер ребра графа — силу связи.
Эврика раз
Эта визуализация представляет из себя визуализацию, сделанную на библиотеке D3.js (мы где-то нашли шаблон), на данных похожести групп. Исходные данные и свою рекурсию можно начать тут [5]. Алгоритм обработки данных был примерно такой (это все было давно, помню в общих чертах, jpn тогда не использовал):
Тогда, когда мы это делали, про питон и науку о данных мы не знали (лолшто?) и все делалось сочетанием SQL запросов, манипуляций с CSV-файлами и перемножением получившихся матриц. Когда мы почистили базу компании и послали всем заветный email, в котором было все описано все проделанное и была продемонстрирована указанная диаграмма… в ответ мы получили ничего. Никто не задал ни одного вопроса. Всем было просто безразлично. Данные нашей кропотливой ушли на прод, продлив срок жизни системы тегов на пару лет (там был лютый мусор, т.к. не было никакой курации и контроля за заполнением данных), а в ответ мы получили безмолвное молчание и упреки формата «зачем мы потратили так много времени на какое-то говно?». Тот факт, что такая информация безумно полезна для построения рекомендаций, рейтингов похожести, кросс-продаж и увеличения перелинковки на сайте тоже прошел незаметно.
После этого помню эпизод, когда один из менеджеров компании пытался ввести отзывы о мероприятиях в виде одной звездочки. Это не дошло до имплементации также по причине, описанной выше. Какой там коллаборативные фильтеринг уж =)
Было и смешно и грустно, что по факту мы «нащупали» работающий алгоритм и сделали так, чтобы он работал на проде, но всем как говорится безразлично.
Эврика два
Второй момент аналогичной эврики — примитивный алгоритм коллаборативной фильтрации (лучше всего на коленке он пояснен тут [6] в форме xlsx файла). По идее «правильный» алгоритм работает так:
На практике, не зная про это и про питон, я делал так. Рассчитывал какой-то показатель, который имел распределение Пуассона и пытался нормировать его и привести к нормальному. Выглядит примерно так:
С набором показателей выглядит примерно так:
Потом линейными и логистическими регрессиями я подбирал веса. По сути получается очень грубый аналог такого метода, но где вместо латентных факторов выступают некие эвристики, придуманные мной и имеющие достаточно хорошие статистические свойства.
В общем, если вы еще не поняли, то моя мысль состоит в следующем:
Автор: snakers4
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/256029
Ссылки в тексте:
[1] серию: https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr
[2] статью : https://habrahabr.ru/company/ods/blog/325654/
[3] Affinity Propagation: https://habrahabr.ru/company/ods/blog/325654/#affinity-propagation
[4] сюда: http://spark-in.me/post/data-intuition
[5] тут: https://musicbrainz.org/doc/MusicBrainz_Database
[6] пояснен тут: https://goo.gl/7MuClq
[7] Источник: https://habrahabr.ru/post/329250/
Нажмите здесь для печати.