我正在尝试计算两个样本之间的相似性。我不满意的python函数sklearn.metrics.pairwise.cosine_similarity
和
返回结果。scipy.spatial.distance.cosine
例如:
在下文中,我预计为 0.0%,因为这两个样本没有相同的样本。
tt1 = [1, 16, 4, 21] tt2 = [5, 17, 3, 22] from scipy import spatial res = 1-spatial.distance.cosine(tt1, tt2) print(res) 0.9893593529663931
我预计会有 0.25% 的相似性,因为两个数组中只有一个样本,即第一个 (1) 样本是相同的。
tt1 = [1, 16, 4, 21] tt2 = [1, 17, 3, 22] from scipy import spatial res = 1-spatial.distance.cosine(tt1, tt2) print(res) 0.9990578001169402
以同样的方式,我们有以下我预计预期为 0.5% 的情况。两个相同的样本(1 和 16)
tt1 = [1, 16, 4, 21] tt2 = [1, 16, 3, 22] res = 0.9989359418266097
这里预计为 0.75%。三个相同的样本(1、16 和 4)
tt1 = [1, 16, 4, 21] tt2 = [1, 16, 4, 22] res = 0.9997474232272052
python有没有办法实现那些预期的结果?