产品和运营用得到的算法知识_相似性算法 数据分析实战笔记003
非算法专业从业者如何理解算法?
算法是用抽象的数学表达现实世界规律,本质是帮助我们去更容易理解规律,对于非算法专业的从业者,我们需要做的事情是敬畏算法,但同时我们可以理清算法需要数据的输入,往算法模型填入什么数据也是一个有挑战性的工作。产品经理、运营、数据分析师,可以在这个维度思考和发力,也能更好的帮助到算法工程师。
同时,了解一些基础的算法规律,有助于我们完成策略思考。
相似性问题
Jaccard相似度有两个数据集,想知道他们多大程度是相似的怎么办?
A | B组 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 7 |
5 | 8 |
使用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θ=(x1x2+y1y2)/(x12+y12∗x22+y22)
用户群 | 休闲零食喜好度 | 男装喜好度 | 女装喜好度 | 数码装备喜好度 |
---|---|---|---|---|
A | 0.8 | 0.9 | 0.1 | 0.87 |
B | 0.7 | 0.3 | 0.9 | 0.2 |
C | 0.75 | 0.8 | 0.2 | 0.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与余弦相似性的应用(二):找出相似文章 持续更新中
