产品和运营用得到的算法知识_相似性算法 数据分析实战笔记003

非算法专业从业者如何理解算法?

算法是用抽象的数学表达现实世界规律,本质是帮助我们去更容易理解规律,对于非算法专业的从业者,我们需要做的事情是敬畏算法,但同时我们可以理清算法需要数据的输入,往算法模型填入什么数据也是一个有挑战性的工作。产品经理、运营、数据分析师,可以在这个维度思考和发力,也能更好的帮助到算法工程师。
同时,了解一些基础的算法规律,有助于我们完成策略思考。

相似性问题

Jaccard相似度有两个数据集,想知道他们多大程度是相似的怎么办?

AB组
11
22
33
47
58

使用Jaccard相似度,用两个数据集的交集,除以他们的并集(也叫交并比),用这个比率衡量两个数据集的相似度。

SIM(A,B)=∣A∩B∣/∣A∪B∣SIM(A,B)=∣A∩B∣/∣A∪B∣

【划重点】用一个更直观的图表达,就是下图,A/B两个圆相交,看他们有多大相似性?就用相交部分C,除以AB的并集(A+B-C)余弦相似如果要判断两个用户是否相似,两个商品是否相似,最简单的算法就是余弦相似性。比如有A用户,想找B/C用户谁与A用户更相近?我们针对用户的一些属性值做了量化打分,并且统一量纲(参见数据中心化处理)。我们只需要比较A与B的余弦相似性,A与C的余弦相似性即可.我们可以把它们想象成空间中的两条线段,都是从原点出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。参见阮一峰老师文档

cosθ=(a2+b2−c2)/2abcosθ=(a2+b2−c2)/2ab
cosθ=(x1x2+y1y2)/(x12+y12∗x22+y22)cosθ=(x1​x2​+y1​y2​)/(x12​+y12​​∗x22​+y22​​)
用户群休闲零食喜好度男装喜好度女装喜好度数码装备喜好度
A0.80.90.10.87
B0.70.30.90.2
C0.750.80.20.6

对于上面的案例, A和B的相似度。把其中的参数休闲零食喜好度、男装喜好度、女装喜好度、数码装备喜好度,都当成其中一个向量,而不只是a/b两个方向的向量。得到:

cosθ1=(0.8∗0.7+0.9∗0.3+0.∗0.9+0.97∗0.2)/0.82+0.92+0.12+0.872∗0.72+0.82+0.22+0.62cosθ1​=(0.8∗0.7+0.9∗0.3+0.∗0.9+0.97∗0.2)/0.82+0.92+0.12+0.872​∗0.72+0.82+0.22+0.62​

得到A与B的相似度,同理得到A与C的相似度。如果用Excel的公式计算如下。

A/B的余弦相似度为0.61,A/C的余弦相似度为0.98,所以我们知道A/C组相似度更高。相关文档TF-IDF与余弦相似性的应用(一):自动提取关键词TF-IDF与余弦相似性的应用(二):找出相似文章 持续更新中

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注