excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)

今天的这篇虽然部分会和昨天的文章相关,但如果亲们想作为独立的内容来看也是OK的

放下昨天天的内容链接:

20180830 countif公式——用于整理成需要的格式

https://www.toutiao.com/i6595473879676748295/

首先,假设我们有一个整理好的产品组件的清单,像下面这样:

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(1)

表中的1代表产品使用此组件,0代表不用

现在如果让你分析产品A和产品C之间的相似程度,你会怎么做呢?

也许你会这么考虑:这两个产品中A和C用了各用了两种组件,其中一个相同另一个不同

这应该是50%吧

但再仔细想想,这两款产品放在一起时总共有三种组件,其中只有1个是重合的,那好像该算是33%相似?

感觉都有点道理,该怎么办啊~~~

这时,不知道从哪个坑里冒出来的数学家表示,咱们可以把这个问题解释得科(zhuang)学(bi)点,比如,用距离公式

接下来,我们先要把上面的信息翻译成认(bu)真(shuo)严(ren)谨(hua)的数学语言

假设,产品A和产品C是在空间中的两个点,下面的组件abc代表了不同的维度,是否使用的数值1和0表示了在这个维度上的映射位置,那么上面表格里的结构用图形表示是这样:

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(2)

那么你也许会问,如果我们有四个以上的组件呢?

嗯嗯~~这个~~根据那些搞科学的人的说法,四维以上的空间是存在的,但如果要我画,额~~~臣妾做不到啊~~~~

不过即使画不出来,也不妨碍我们使用公式来计算距离,一种是曼可顿距离,就是下图中画红色线的那两段

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(3)

虽然肉眼也能看出来这里的距离是2,但是我们还是尊重一下那些搞数学的人,像模像样的代入下公式:

曼可顿距离

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(4)

(其中R=Rmax-Rmin)

公式里的这个分母其实主要是为了避免计算中各维度的数据单位不一致,为了去除量纲做数据标准化用的,这里我们由于用的是无量纲的计数项且最大最小值之间差值都是1,所以可以省略,计算结果:d(A,C)=|1-1| |1-0| |0-1|=2

写在Excel里是:(此处数组公式)

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(5)

但是有距离长度还不够啊,相似度不是应该用百分比么?

别急,所谓百分比,指的是一个数在它应有的范围里所占的比例,这样的话,我们不妨认为,产品A和C之间的相似度最大和相似度最小的两种可能性之间的差值,就是我们需要的范围,而在这里例子中,两种产品间距离最小可以为0(即两者完全相等),距离最大可以为3(即三种组件的使用完全都不一样),而距离/范围得到的比例为两者的相异程度,这样的话:

相似度就是1-2/(3-0)约等于33%

这样问题是不是就圆满解决了呢?不,傲气的数学家又跳出来说,咱还尝试个更骚气一点的操作方式,比如:欧式距离

曼可顿距离的别名叫街区距离,而欧式距离的概念其实反而是我们平时说的直线距离,就是下面的图中红色线:

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(6)

欧式距离公式:

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(7)

R的定义和上面的曼哈顿公式一样,在我们这里例子中,计算结果是:d(A,C)=根号2,约为1.41

写入Excel公式:

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(8)

既然距离长度用了欧式距离,那范围是不是也得用欧式距离呢,这个空间里能达到的最大长度距离为根号3,就是上面图中的那条绿色线

然后按这法子算出的产品相似度为1-SQRT(2)/SQRT(3)约等于18.35%

好像。。。感觉更难理解了呢。。。

插一句话,今天至少人家的图是认认真真画的(掩面逃走)~~

excel怎么对比两个数的相似度(Excel距离公式计算两产品相似度)(9)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页