Mus*_*afa 4 similarity euclidean-distance pandas cosine-similarity data-science
我是数据科学的新手,目前正在学习可以使用Python进行的各种技术。目前,我正在尝试使用Spotify的API播放自己的播放列表。
目的是找到两个不同播放列表之间最相似的功能。
我的问题是识别这两个播放列表之间最相似功能的最佳方法是什么?
我首先获得了每个播放列表中的所有曲目及其各自的功能。然后,我计算了每个特征的均值。
这是我最终得到的DataFrame。数据值是所有曲目特征到达其各自播放列表的均值
playlist1 playlist2
--------------------
danceability | 0.667509 0.592140
energy | 0.598873 0.468020
acousticness | 0.114511 0.398372
valence | 0.376920 0.287250
instrumentalness | 0.005238 0.227783
speechiness | 0.243587 0.088612
Run Code Online (Sandbox Code Playgroud)
我进行了一些挖掘,发现了两个常见过程:
1.欧氏距离
2.余弦相似度
由于某种原因,我无法使用我的头,而是继续计算每个功能之间的绝对差异。简单的减法,因为这对我来说很有意义。差异最大的特征就是“最不相似”。
通过这种方法,我最终使用了这些结果,并得出结论,能量和声学是最不相似的
playlist1 playlist2 absoluteDifference
----------------------------------------------------
energy |0.871310 0.468020 0.403290
acousticness |0.041479 0.398372 0.356893
valence |0.501890 0.287250 0.214640
instrumentalness |0.049012 0.227783 0.178771
danceability |0.531071 0.592140 0.061069
speechiness |0.109587 0.088612 0.020975
Run Code Online (Sandbox Code Playgroud)
我的直觉是否正确/不正确?何时使用上述技术?这些技术中的任何一种在这种情况下是否适用?
最终,我想将最重要的两个差异作为KNN的轴。我的直觉是,我可以识别两个播放列表的最相似的功能,可以使播放列表具有更清晰,定义更明确的功能,并且可以更准确地预测该播放列表应属于哪首歌曲。
让我首先谈谈欧几里得距离和余弦相似度:
欧几里得距离测量n维空间中两个点的距离,即测量从点A到点B的直线的长度
余弦相似度衡量其方向相似度,即顶点为零的两个点A和B之间的角度
让我添加图片以强调我的想法
点A和点B之间的欧几里得距离用红色表示,余弦相似度用绿色表示(因此,我的字面意思不是度量的实际值,而是与度量的实际值相关的值)
现在让我大致谈谈度量:任何度量都描述某种相似性。没有通用的“最佳指标”。最适合您问题的度量标准始终由问题决定。
我在图像中添加了一些额外的要点来表明这一事实:
现在,让我谈谈针对您的特定问题的度量标准的适当选择:您希望评估要素之间的距离。差异越大,功能越远。您根本不在乎点之间的角度。这是欧几里得距离的明确点。您可能没有意识到,但是您在示例中实际使用了欧几里得距离。您的特征是一维的,在一维中,欧几里得距离等于绝对差。
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |