Что такое косинусное расстояние

Эти ограничения применимы для любого количества измерений, а косинусное подобие чаще всего используется в многомерных положительных пространствах. Например, при поиске информации и интеллектуальном анализе текста каждому термину условно назначается другое измерение, а документ характеризуется вектором, где значение в каждом измерении соответствует количеству раз, когда термин появляется в документе. Таким образом, косинусное сходство дает полезную меру того, насколько похожими могут быть два документа с точки зрения их предмета.

СОДЕРЖАНИЕ

Определение

Косинус двух ненулевых векторов может быть получен с помощью формулы евклидова скалярного произведения :

Для сопоставления текста векторы атрибутов A и B обычно являются векторами частотности терминов документов. Косинусное сходство можно рассматривать как метод нормализации длины документа во время сравнения.

Термин косинусное расстояние используется для дополнения косинусного подобия в положительном пространстве, то есть

Угловое расстояние и подобие

Когда элементы вектора могут быть положительными или отрицательными:

Или, если элементы вектора всегда положительны:

L 2 <\ displaystyle L_ <2>> Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние-нормированное евклидово расстояние

Другой эффективный прокси для косинусного расстояния может быть получен путем нормализации векторов с последующим применением нормального евклидова расстояния. Используя этот метод, каждый член в каждом векторе сначала делится на величину вектора, в результате чего получается вектор единичной длины. Тогда ясно, что евклидово расстояние по конечным точкам любых двух векторов является правильной метрикой, которая дает тот же порядок, что и косинусное расстояние для любого сравнения векторов, и, кроме того, позволяет избежать потенциально дорогостоящих тригонометрических операций, необходимых для получения правильного метрическая. После нормализации векторное пространство можно использовать с полным набором методов, доступных для любого евклидова пространства, в частности, стандартными методами уменьшения размерности. Это нормализованное расстояние формы, в частности, используется во многих алгоритмах глубокого обучения. L 2 <\ displaystyle L_ <2>> Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Коэффициент Оцука-Очиай

Характеристики

Евклидово расстояние называется хордовым расстоянием (потому что это длина хорды на единичной окружности), и это евклидово расстояние между векторами, которые были нормированы на единичную сумму квадратов значений внутри них.

Мягкая косинусная мера

Мягкий косинус или («мягкое» сходство) между двумя векторами учитывает сходство между парами объектов. Традиционное косинусное сходство рассматривает функции модели векторного пространства (VSM) как независимые или совершенно разные, в то время как мягкая косинусная мера предлагает учитывать сходство функций в VSM, что помогает обобщить концепцию косинуса (и мягкого косинуса), а также идею (мягкого) сходства.

Источник

Алгоритмы поиска схожих объектов в рекомендательных системах

«Досмотрю вот это видео на YouTube и пойду спать! Ой, в рекомендациях еще одно интересное. Сон, прости…». «Закажу в IKEA только стулья. Ах, сайт показал мне еще посуду, постельное белье и новую кухню в сборке. Когда там следующая зарплата?». «Бесконечный плейлист любимых музыкальных жанров в СберЗвуке заряжает меня позитивом! Как специалистам удается создавать выборку специально для меня?».

Согласитесь, вы сталкивались с подобными мыслями при использовании интернет сервисов. Магическим образом пользователю предлагают новые и новые объекты: видеоролики, музыку, товары. Никакого волшебства здесь нет — это рутинная работа рекомендательных систем. Алгоритмы поиска похожих объектов в больших массивах данных органично вплелись в нашу жизнь и помогают нам делать почти осознанный выбор в той или иной области повседневных дел.

Модели рекомендаций можно использовать для поиска похожих объектов вне контекста продаж. Например, выявлять однообразные ответы операторов в чатах, распознавать будущих злостных неплательщиков кредитных обязательств по косвенным признакам или находить различные группы сотрудников, которым требуется рекомендовать курсы повышения квалификации, в зависимости от текущих навыков. Не стоит забывать и о сайтах знакомств, где рекомендательные алгоритмы будут подбирать собеседника по указанным критериям.

Статья описывает основные подходы к поиску схожих объектов в наборе данных и содержит вводный курс в мир рекомендательных систем. Представлены варианты подготовки данных. Информация будет полезна аналитикам, которые изучают python, и начинающим data-scientist’ам. Мы не будем останавливаться на подробном описании каждого метода и разбирать отличия контентных и коллаборативных рекомендательных систем. Базовая теоретических часть находится здесь, здесь и здесь. Нас интересует применение алгоритмов матчинга (matching, англ. Поиск схожих объектов) в повседневных задачах. К статье прилагается ноутбук на платформе Kaggle с основным кодом, который рекомендуем запускать одновременно с изучением текста.

Коэффициенты корреляции

Самым простым способом вычисления схожести объектов по числовым характеристикам является расчет коэффициента корреляции. Этот метод работает в большинстве повседневных задач, когда у каждого объекта исследования присутствует одинаковый набор метрик. Такая последовательность числовых характеристик называется вектор. Например, мы ищем похожие квартиры в городе: можно банально сравнивать общую и жилые площади, высоту потолков и количество комнат. Для разбора кода возьмем датасет (dataset, англ. Набор данных), в котором содержится информация об объектах недвижимости Сиднея и Мельбурна. Каждая строка таблицы – это отдельный вектор с числовыми характеристиками.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 1 Датасет с объектами недвижимости

Схожесть характеристик можно рассчитать несколькими способами. Если вы работаете с табличными данными – pandas.corr() является самым удобным. Сравним три объекта, выставленных на продажу.

Мы рассчитали схожесть двух пар объектов: нулевого с девятым и нулевого с шестым. Посмотрите на рисунок выше. Действительно, дома в первой паре подобны по характеристикам. У второй пары объектов заметно различаются общая площадь, год постройки и ренновации, количество спален.

По умолчанию pandas.corr() рассчитывает коэффициент корреляции Пирсона. Его можно сменить на метод Спирмена или Кендала. Для этого нужно ввести аттрибут method.

Для обработки нескольких строк можно создать матрицу корреляции, в которой будут отражены сразу все объекты, находящиеся в датасете. По опыту работы замечу, что метод визуализации хорошо работает с выборками до 100 строк. Далее график становится слабо читаемым. Тепловую матрицу можно рисовать с помощью специализированных библиотек или применить метод style.background_gradient() к таблице. Создадим матрицу корреляции с 10 записями. Чем темнее цвет ячейки – тем выше корреляция.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 2 Матрица корреляции 10 объектов недвижимости

Метод pandas.corr() сравнивает таблицу по столбцам. Обратите внимание, что для правильного рассчета корреляций между объектами недвижимости, исходную таблицу необходимо транспонировать — повернуть на 90*. Для этого применяется метод dataframe.T.

Сравнивать объекты парами интересно, но непродуктивно. Попробуем написать небольшую рекомендательную систему, которая подберет 10 объектов недвижимости, которые максимально похожи на образцовый. За эталон примем случайный дом, например, с порядковым номером 574.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 3 Результат работы простейшей рекомендательной системы

Алгоритм отобрал 10 наиболее похожих на образец домов. Все представленные объекты недвижимости имеют одинакое количество спален и ванных комнат, примерно равные жилые и общие площади, и занимают только один этаж. В дополнении на Kaggleпредставлен второй вариант решения задачи, который последовательно перебирает все строки таблицы.

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

Косинусное расстояние

Эту метрику схожести объектов в математике обычно относят к методам расчета корреляции и рассматривают вместе с коэффициентами корреляции. Мы выделили ее в отдельный пункт, так как схожесть векторов по косинусу помогаем в решении задач обработки естественного языка. Например, с помощью данного алгоритма можно находить и предлагать пользователю похожие новости. Косинусное расстояние так же часто называют конисусной схожестью, диапазон значений метрики лежит в пределах от 0 до 1.

Разберем простейший алгоритм поиска похожих текстов и начнем с предобработки. В статье приведем некоторые моменты, полный код находится здесь. Для расчета косинусного расстояния необходимо перевести слова в числа. Применим алгоритм токенизации. Для понимания этого термина представьте себе словарь, в котором каждому слову приставлен порядковый номер. Например: азбука – 1348, арбуз – 1349. В процессе токенизации заменяем слова нужными числами. Есть более современный и более удачный метод превращения текста в числовой вектор — создание эмбеддингов с помощью моделей-трансформеров. Не углубляясь в тему трансформаций, отметим, что в этом случае каждое предложение предложение преврящается в числовой вектор длиной до 512 символов. При этом числа отражают взаимодействие слов друг с другом. Звучит, как черная магия, но здесь работает чистая алгебра. Советуем ознакомиться с базовой теорией о трансформерах, эмбеддингах и механизме «внимания» здесь и здесь.

В процессе преобразования новостных статей в токены и эмбеддинги получаем следующие результаты.

После векторизации текста можно сравнивать схожесть заголовков. Рассмотрим работу метода cosine_similarityиз библиотеки sklearn. Выведем два заголовка и узнаем, насколько они похожи.

Новости из мира техники и футбола далеки друг от друга. Косинусная схожесть равна 0.24%. Действительно, южнокорейский IT гигант и туринский футбольный клуб идейно практически не пересекаются.

Вернемся к первичной задаче раздела – поиску схожих статей для пользователя новостного сайта. Рассчитываем косинусное расстояние между векторизированными заголовками и показываем те, где коэффициент максимальный. В результате для новости под индексом 18 получаем следующие рекомендации.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 4 Результат работы рекомендательного алгоритма заголовков новостей

С высокой вероятностью пользователю, прочитавшему про восстанавливающийся рынок Европы будет интересно узнать про мировой кризис, рост цен и проблемы с валютой в азиатском регионе. Задача выполнена, переходим к заключительному алгоритму поиска схожих объектов.

Кластеризация

Третьим эффективным методом матчинга в большом объеме данных является кластеризация. Алгоритм разделяет записи по установленному количеству групп – кластеров. Задача кластеризации сводится к поиску идеального расположения центров групп — центроидов. Так, чтобы эти центры как бы группировали вокруг себя определенные объекты. Дистанция объекта от центра кластера рассчитывается целевой функцией. Подробнее о ней рекомендуем прочитать здесь. Алгоритм кластеризации представлен фукцией kMeans (англ, к-Средних) библиотеки sklearn.

Для примера алгоритма кластеризации возьмем 300 домов из первичного датасета с австралийской недвижимостью.

Первый шаг метода – поиск оптимального количества кластеров. Последовательно перебираем группы в диапазоне от 1 до 20 и рассчитываем значение целевой функции.

Отрисовываем значения целевой функции, получаем, так называемый, «локтевой график». Нас интересует точка, в которой происходит самый сильный изгиб. На рисунке 5 представлен искомый узел. При увеличении числа кластеров больше 4, значительного улучшения целевой функции не происходит.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 5 Поиск оптимального числа кластеров для группировки объектов недвижимости

Заново обучаем модель kMeans с необходимым числом кластеров. Для каждого объекта устанавливаем причастность к группе и сохраняем ее номер. Выбираем объекты одной группы.

Посмотрим на количество домов в группах.

«Нулевая» группа самая многочисленная и содержит типовые дома. В группы «один» и «два» попали объекты с громадной жилой площадью (столбец sqft_lot). Выборки представлены на рисунке 6.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояниеРис. 6 Объекты недвижимости с увеличенной площадью

Задача группировки объектов недвижимости с помощью алгоритма kMeans выполнена. Переходим к итогам.

Заключение

Мы рассмотрели три метода поиска схожих объектов в данных: коэффициенты корреляции, косинусное расстояние и метод k-средних. С помощью представленных инструментов можно решить большинство повседневных задач: найти схожие объекты с числовыми характеристиками, обработать текстовые записи или разбить массив данных на кластеры. Мы изучили основы матчинга и рекомендательных алгоритмов. В заключение отметим, что самые современные системы YouTube и TikTok в своей основе используют комбинации и улучшения указанных методов. Как видите, никакой магии в подборе любимых песен и роликов. Только чистая математика!

Источник

ML: Embedding слов

Введение

При небольшом количестве значений признака подходит one-hot кодирование. В этом способе размерности векторов и число слов в словаре совпадают ( E = V), а вектор i-того слова состоит из нулей, кроме i-той позиции в которой стоит единица. One-hot кодировку можно интерпретировать как V-мерное пространство, каждая ось которого означает наличие ( 1) или отсутствие ( 0) данного значения. При этом векторы всех слов словаря попарно ортогональны:

One-hot кодировку иногда используют и для слов естественного языка, имеющего очень большой словарь.
Любой документ можно охарактеризовать суммой (или логическим OR) one-hot векторов его слов. Такой вектор документа называется мешком слов (bag of words, BoW), т.к. он отражает только количество или факт наличия (при OR) слов в документе, но не их порядок. Подобную простую векторизацию документов можно использовать, например, для их классификации или поиска.

У one-hot кодирования есть два недостатка: 1) при большом словаре векторное представление признаков становится очень громоздким, а число параметров модели увеличивается; 2) one-hot векторы не отражают близости различных слов словаря (если она существует).

Для экспериментов с векторизацией слов естественного языка потребуется некоторый корпус текстов. Будем использовать короткие истории ROC Stories, подробное описание которых можно найти в документе NLP_ROCStories.html. Приведенные примеры на библиотеке PyTorch находятся в ноутбуке NN_Embedding_Learn.ipynb, для которого необходимы тексты из файла 100KStories.csv. Слегка почищенные истории можно скачать у нас на сайте

Векторы контекста

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Теперь можно вычислить векторы слов по формуле pPMI: Время получения компонент векторов для корпуса 100k ROCStories на Python занимает около минуты (при вычислениях на CPU Intel i7-7500U 2.7GHz, 16Gb). Приведём примеры нескольких компонент четырёх векторов (опуская нули):

Обратим внимание на малые значения pPMI с высокочастотными словами в последних колонках таблицы. Очевидно, что эти слова не имеют прямой смысловой связи со словами cat, dog, cat, bus.

Понижение размерности

Хотя компоненты векторов слов теперь отражают сходство слов, их размерность так-же велика, как и при one-hot кодировке. Для понижения размерности эмбединга, воспользуемся методом главных компонент ( PCA: principal component analysis): Вычисление главных компонент для матрицы (10000, 10000) занимает около 7 минут. Первые 50 собственных значений ковариационной матрицы ( pca.singular_values_) быстро убывают, а потом убывание к нулю (при i=V) становится практически линейным: Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Ограничимся далее размерностью векторного пространства E_DIM = E = 100: Финальная нормализация компонент (вычитание среднего и деление на разброс) переносит «центр облака точек» в начало координат, что улучшает работу косинусной меры расстояния (см. ниже). Деление на корень от размерности эмбединга E_DIM, масштабирует длины векторов в среднем к единичному значению.

Меры близости

Для сравнения косинусное и евклидово расстояние между этими словами: Обратим внимание, что косинусное расстояние между словами из «разичных кластеров» порядка единицы, что говорит о перпендикулярности этих векторов.

По сравнению с подходами, основанными на нейронных сетях, векторизация при помощи на PCA достаточно быстрый метод и при относительно небольших словарях может служить очень неплохим первым приближением.

Свойства векторного пространства

Семантические направления

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Global Vectors (GloVe)

При очень больших словарях понижение размерности методом PCA или SVD может быть затруднительно. В этом случае, обычно, используют нейронные сети, которые сразу работают с векторными пространствами небольших измерений (см. следующий документ). В работе Pennington J. et.al. (2014) был предложен промежуточный подход, названный «Global Vectors for Word Representation» или сокращённо GloVe.

Векторизация была проведена на больших корпусах текстов:

We trained our model on five corpora of varying sizes: a 2010 Wikipedia dump with 1 billion tokens; a 2014 Wikipedia dump with 1.6 billion tokens; Gigaword 5 which has 4.3 billion tokens; the combination Gigaword5 + Wikipedia2014, which has 6 billion tokens; and on 42 billion tokens of web data, from Common Crawl

В открытом доступе находятся наборы векторов с размерностью от 50 до 300 и словарём 400k. Перед построением словаря, авторы «tokenize and lowercase each corpus with the Stanford tokenizer». Хорошей идей при использовании GloVe будет также использование Stanford tokenizer, т.к. он делает «непробельное» разбиение: can’t → [ca, n’t]; she’s → [she, ‘s] и т.п.

Анализ векторного пространства GloVe можно найти в этом документе.

Проблемы эмбединга

✑ Для получения надёжных контекстных векторов редких слова требуется очень большой корпус текстов. Однако, в большом корпусе может происходить перекос в семантических значениях слов по сравнению с их харатерными обыденными значениями. Например при векторизации GloVe для слова apple получаем следующих ближайших соседей: microsoft(.26), ibm (.32), intel(.32), software(.32), dell (.33). В тоже время существенно меньший корпус ROC Stories выдаёт более «обыденных соседей» для apple.

✑ Простой эмбединг не учитывает семантической и синтаксической неоднозначности. Обычно предполагается, что семантическая неоднозначность снимается, после прохождения исходных векторов слов через несколько слоёв нейронной сети, в которых анализируется контекст всего предложения (архитектуры RNN или Attention). Например, общий контекст предложений » Remove first row of the table.» и » Put an apple on the table» позволяет в каждом случае уточнить семантическое значение слова table.

Источник

Русские Блоги

Принцип сходства текстов алгоритм косинусного сходства

Основная идея косинусного сходства : Чем больше похожи слова в этих двух предложениях, тем более сходным должно быть их содержание. Поэтому мы можем начать со слов частоты и вычислить их сходство.

Первым этапом предварительной обработки является в основном выполнение сегментации китайских слов и остановка слов и сегментации слов.

Чем ближе значение косинуса к 1, это означает, что включенный угол ближе к 0 градусам, то есть два вектора больше похожи.

Дефект косинуса сходства

Этот тип алгоритма не решает проблему естественного языка в текстовых данных, то есть синонимы и многозначности. Это имеет большое влияние на точность поиска.

Несколько методов измерения сходства текста:

(1) Самая длинная общая подстрока (на основе пробела)

(2) Самая длинная общая подпоследовательность (на основе пространства весов и пространства входа)

(3) Метод минимального расстояния редактирования (в зависимости от места ввода)

(4) Расстояние Хэмминга (в зависимости от веса пространства)

(5) Значение косинуса (на основе весового пространства)

Векторное косинусное сходство (косинусное сходство)

Косинусное сходство использует косинусное значение угла между двумя векторами в векторном пространстве как меру разницы между двумя индивидуумами. Чем ближе значение косинуса к 1, это означает, что включенный угол ближе к 0 градусам, то есть два вектора больше похожи.

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Угол между двумя векторами a и b на рисунке выше очень мал. Можно сказать, что вектор a и вектор b имеют высокое сходство. В крайних случаях векторы a и b полностью совпадают. Как показано ниже:

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Как показано на рисунке 2 выше: можно считать, что векторы a и b равны, то есть тексты, представленные векторами a и b, полностью аналогичны или эквивалентны. Если угол между векторами a и b большой или в противоположном направлении. Как показано ниже

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Как показано на рисунке 3. Угол между двумя векторами a и b очень велик. Можно сказать, что вектор a и вектор b имеют очень сходство или что текст, представленный векторами a и b, в основном не похож. Можно ли использовать значение функции угла между двумя векторами для расчета сходства индивидов?

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Фото (4)

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Но это применимо только к прямоугольным треугольникам, а в не прямоугольных треугольниках формула для теоремы косинуса

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Фото (5)

Формула для вычисления косинуса угла a и b треугольника имеет вид:

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Формула (2)

В треугольнике, представленном вектором, при условии, что вектор a равен (x1, y1), а вектор b равен (x2, y2), то теорему косинуса можно переписать в следующую форму:

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Фото (6)

Косинус угла между вектором a и вектором b рассчитывается следующим образом

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Чем ближе значение косинуса к 1, тем ближе угол к 0 градусам, то есть чем больше сходны два вектора, а угол равен 0, то есть оба вектора равны, что называется «косинусным сходством».

Источник

Русские Блоги

Евклидово расстояние и косинусное сходство

Сходство между ними состоит в том, что они могут использоваться для вычисления сходства в машинном обучении, но значение этих двух очень различно. В моем понимании это:

Первая рассматривается как две точки в системе координат для расчета расстояния между двумя точками;

Последний рассматривается как два вектора в системе координат для расчета угла между двумя векторами.

Поскольку первая точка является точкой, она обычно относится к разнице в положении, то есть к расстоянию;

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

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Когда элементы данных A и B используются в качестве точек на графике координат, сходство между ними представляет собой расстояние dist (A, B), которое можно рассчитать по формуле евклидова расстояния (также называемого евклидовым расстоянием):

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

При использовании в качестве вектора сходство между ними равно cosθ, которое можно рассчитать по формуле косинуса:

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Предположим, что || A ||, || B || представляет 2-норму векторов A и B, например, 2-норма вектора [1,2,3] имеет вид:

Инструмент для расчета нормы представлен в виде:linalg.norm()

Поэтому очень удобно вычислять cosθ (предполагая, что A и B оба являются столбцами-векторами):

num = float (A.T * B) # Если это вектор строки, то A * B.T

denom = linalg.norm(A) * linalg.norm(B)

cos = num / denom #cosine

sim = 0.5 + 0.5 * cos # нормализовано

Благодаря linalg.norm () евклидова формула расстояния более удобна для реализации:

sim = 1.0 / (1.0 + dist) # нормализует

Поскольку диапазон значений косинуса равен [-1, + 1], обычно необходимо нормализовать значение до [0,1] при расчете подобия, как правило, следующим образом:

sim = 0.5 + 0.5 * cosθ
Если в формуле евклидова расстояния диапазон значений будет очень большим, его обычно нормализуют следующим образом:

sim = 1 / (1 + dist(X,Y))

После разговора о принципе просто опустите действительный смысл, давайте возьмем каштан:

Например, футболка была уменьшена со 100 до 50 (A (100,50)), а костюм уменьшен с 1000 до 500 (B (1000,500))

Тогда и футболки, и костюмы были снижены в цене на 50%. Ценовой тренд этих двух одинаков, а косинусное сходство является максимальным, то есть оба имеют высокуюИзменить тренд сходства

Однако, с точки зрения самих цен на сырьевые товары, разница между ними составляет сотни блоков, а евклидово расстояние больше, то есть оба имеют меньшуюЦеновое сходство

Словарь Python, отсортированный по значению

Позвольте мне сначала поговорить о нескольких решениях. Если у меня будет время, я уточню.

Словарь такой, то нужно отсортировать словарь по значению

После zip функция zip сортирует первый элемент по умолчанию. Как отменить сортировку?

Краткое описание последующих проектов, таких как занятие космоса

Мульти-классификация может использовать Multi-LogLoss

мм количество классов

Интеллектуальная рекомендация

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Разработчик PL / SQL удаленно входит в систему с ошибкой идентификатора соединения Oracle TNS

Что такое косинусное расстояние. Смотреть фото Что такое косинусное расстояние. Смотреть картинку Что такое косинусное расстояние. Картинка про Что такое косинусное расстояние. Фото Что такое косинусное расстояние

Мозга

Обратитесь к источнику: IBM DeveloperWorks: https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ содержание: 1. Введение в Cmake 2, обработка каталога файлов с несколькими источниками 3, найти и ис.

Settings.System.getInt, чтобы получить некоторые настройки в Setting

В пользовательских компонентахpropertiesНеправильное использование неправильноVueГрамматика модифицировать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *