一、欧几里得距离
用来记录两个向量之间的距离。
欧氏距离越小,两个用户相似度就越大,
欧氏距离越大,两个用户相似度就越小。
二维空间的公式:
其中,
为点
与点
之间的欧氏距离;
为点
到原点的欧氏距离。
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D191/sign=7bb3375e3c4e251fe6f7e0f19687c9c2/e7cd7b899e510fb335a3e2f3d533c895d1430c1f.jpg)
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D110/sign=037831116081800a6ae58d0f813433d6/50da81cb39dbb6fd80462db80524ab18972b370b.jpg)
![](https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D13/sign=5b92864b99cad1c8d4bbf8247e3e1162/9f2f070828381f3082f81bcda5014c086f06f0f5.jpg)
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D47/sign=31c3a76f57b5c9ea66f302e4d439f3e2/a9d3fd1f4134970a3516814b99cad1c8a7865d68.jpg)
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D47/sign=2675737e6c59252da7171c03359bf995/18d8bc3eb13533fa7d07024aa4d3fd1f41345b25.jpg)
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D19/sign=40d205df8bd6277fed1236312938b45c/77094b36acaf2edd641fd88d811001e9380193ec.jpg)
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D47/sign=31c3a76f57b5c9ea66f302e4d439f3e2/a9d3fd1f4134970a3516814b99cad1c8a7865d68.jpg)
三维空间的公式:![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D275/sign=1e062caeb6a1cd1101b675278c13c8b0/ac4bd11373f08202bc7559a147fbfbedaa641b4d.jpg)
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D135/sign=96afa701a80f4bfb88d09a57364e788f/1e30e924b899a90158a593a811950a7b0308f598.jpg)
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D275/sign=1e062caeb6a1cd1101b675278c13c8b0/ac4bd11373f08202bc7559a147fbfbedaa641b4d.jpg)
![](https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D135/sign=96afa701a80f4bfb88d09a57364e788f/1e30e924b899a90158a593a811950a7b0308f598.jpg)
n维空间的公式:![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D469/sign=2bee509a5582b2b7a39f38c208accb0a/ae51f3deb48f8c541e440db136292df5e1fe7f9d.jpg)
![](https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D469/sign=2bee509a5582b2b7a39f38c208accb0a/ae51f3deb48f8c541e440db136292df5e1fe7f9d.jpg)
二、闵可夫斯基距离
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D180/sign=31396940fc1f3a295ec8d1c6a924bce3/d000baa1cd11728bfa7d44bcc4fcc3cec2fd2cd8.jpg)
当p=1时,即为曼哈顿距离;
当p=2时,即为欧几里得距离
当
时,即为切比雪夫距离
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D41/sign=82053bf21c38534388cf86209213c88e/6609c93d70cf3bc728120572dd00baa1cd112a1a.jpg)
三、实现一个简单的音乐推荐系统
1、基于相似用户做推荐
跟你听类似歌曲的人,看作口味相同的用户。
- 通过用户的行为来定义对歌曲的喜爱程度,给每个行为定义一个得分,得分越高表示越喜爱:
![](https://img2018.cnblogs.com/blog/805549/201908/805549-20190823174809208-211507.png)
- 每个人对歌曲的喜爱程度表示为如下:
![](https://img2018.cnblogs.com/blog/805549/201908/805549-20190823175153632-1349772307.png)
- 通过欧几里得距离来计算两个向量之间的相似度
你:(5,3,3,0,-1,2,5,4,1,-1)
小明:(4,5,2,1,0,3,2,0,1,1)
2、基于相似歌曲做推荐
新用户还没收集足够多的行为数据,则基于相似歌曲进行推荐。
基于歌曲特征项计算相似度,我们可以对歌曲定义一些特征项【伤感、愉快、摇滚、民谣、柔和、高亢】
人工给每首歌每个特征项打分,工程浩大,存在个人主观性,影响推荐的准确性,不可行。
那么通过什么数据来量化两个歌曲的相似程度?
对于两首歌,如果喜欢听的人群都是差不多的,就可以侧面反映出这两首歌比较相似。