zoukankan      html  css  js  c++  java
  • 余弦相似度

    余弦相似度计算公式看:余弦相似度Cosine Similarity相关计算公式

    余弦相似度在度量各种相似度上比较常用。

    案例:文本相似度

    比如有下面两个句子,我们要计算这两个句子的相似度。

    句子A:他不仅是一个歌手,还是一个舞者;
    句子B:他既是一个歌手,也是一个舞者。

    我们从词频入手,来计算其相似性。
    分词后的词频数据如下:

    句子A: 他(1) 不仅(1) 既(0) 是(2) 一个(2) 歌手(1) 还(1) 也(0) 舞者(1)
    句子B:他(1) 不仅(0) 既(1) 是(2) 一个(2) 歌手(1) 还(0) 也(1) 舞者(1)

    我们总结出来两个句子的词频向量:

    句子A(1,1,0,2,2,1,1,0,1)
    句子B(1,0,1,2,2,1,0,1,1)

    A和B的余弦相似度计算如下:

    想要利用余弦相似性公式来计算两者之间的相似性,首先要确定向量化的方法(比如本案例中,通过将连个句子通过分词的方式,计算词频来向量化),理解向量值的多维度(我们通过分词可以得出来9各维度的向量值),然后将向量化后将值带入到公式中,去计算相似度。

    用户相似度

    比如一个外卖平台,两个用户A和B,外卖新出了两款新品套餐,分别是a和b,用户A对这两款新品的评分是1分和2分,b对这两款新品的评分是4分和5分,我们通过余弦相似度来评价一下两个用户的相似度。

    假如我们将对这新品套餐评分作为特征向量,两个产品的评分分别连个维度的向量值,是那么A和B的特征向量分别是(1,2)、(4、5),我们代入公式计算得出:0.98。

    通过公式计算发现两个相似度很高,但是这跟我们直觉判断这两个应该相似度很低才是,这说明我们选定好评价的特征向量后,对于向量值的的确定出现了问题,我们对(1,2)、(4、5)进行转换,变成与平均分3的差额,的出来新的向量值(-2,-1)、(1、2)之后,重新计算得出相似度为-0.8,那么我们看这个结果比较接近事实。

    通过这个案例我们可以看到:再找到特征向量后,对于向量值的取值与评价也需要灵活考虑,可以结合统计学知识。

    上述两个例子来自:AI产品经理需要了解的数据知识:余弦相似度

    评委打分

    歌手大赛,三个评委给三个歌手打分,第一个评委的打分(10,8,9), 第二个评委的打分(4,2,3),第三个评委的打分(8,10,9)。

    如果采用余弦相似度来看每个评委的差异,虽然每个评委对同一个选手的评分不一样,但第一、第二两个评委对这三位歌手实力的排序是一样的,只是第二个评委对满分有更高的评判标准,说明第一、第二个评委对音乐的品味上是一致的。

    白话总结《余弦相似度vs欧式距离&缺陷》

  • 相关阅读:
    表变量和临时表的比较
    表变量和临时表
    微信小程序(五)
    微信小程序(四)开发框架
    微信小程序(三)开发框架
    微信小程序(二)
    微信小程序(一)
    菜鸡的Java笔记第二
    C#中的委托和事件
    在GridView控件里面绑定DropDownList控件
  • 原文地址:https://www.cnblogs.com/ghj1976/p/yu-xian-xiang-shi-du.html
Copyright © 2011-2022 走看看