dtaidistance 笔记:相似度&压缩

1 相似度

相似度:1表示相等,0表示疏远

给定一组时间序列(每一行是一个),计算基于DTW的逐对相似度


python 复制代码
from dtaidistance import dtw, similarity
s = np.array([[0., 0, 1, 2, 1, 0, 1, 0, 0],
              [0., 1, 2, 0, 0, 0, 0, 0, 0],
              [1., 2, 0, 0, 0, 0, 0, 1, 1],
              [0., 0, 1, 2, 1, 0, 1, 0, 0],
              [0., 1, 2, 0, 0, 0, 0, 0, 0],
              [1., 2, 0, 0, 0, 0, 0, 1, 1]])
dis_matrix=dtw.distance_matrix(s)
dis_matrix
'''
array([[0.        , 1.41421356, 2.23606798, 0.        , 1.41421356,
        2.23606798],
       [1.41421356, 0.        , 1.73205081, 1.41421356, 0.        ,
        1.73205081],
       [2.23606798, 1.73205081, 0.        , 2.23606798, 1.73205081,
        0.        ],
       [0.        , 1.41421356, 2.23606798, 0.        , 1.41421356,
        2.23606798],
       [1.41421356, 0.        , 1.73205081, 1.41421356, 0.        ,
        1.73205081],
       [2.23606798, 1.73205081, 0.        , 2.23606798, 1.73205081,
        0.        ]])
'''


sim_matrix=similarity.distance_to_similarity(dis_matrix)
sim_matrix
'''
array([[1.        , 0.53128561, 0.36787944, 1.        , 0.53128561,
        0.36787944],
       [0.53128561, 1.        , 0.46088963, 0.53128561, 1.        ,
        0.46088963],
       [0.36787944, 0.46088963, 1.        , 0.36787944, 0.46088963,
        1.        ],
       [1.        , 0.53128561, 0.36787944, 1.        , 0.53128561,
        0.36787944],
       [0.53128561, 1.        , 0.46088963, 0.53128561, 1.        ,
        0.46088963],
       [0.36787944, 0.46088963, 1.        , 0.36787944, 0.46088963,
        1.        ]])
'''

2 压缩

相似性将高值反转为低值,低值反转为高值。如果要保持方向但将距离压缩到0到1之间,可以使用squash函数

python 复制代码
sq_matrix=similarity.squash(dis_matrix)
sq_matrix
'''
array([[1.        , 0.53128561, 0.36787944, 1.        , 0.53128561,
        0.36787944],
       [0.53128561, 1.        , 0.46088963, 0.53128561, 1.        ,
        0.46088963],
       [0.36787944, 0.46088963, 1.        , 0.36787944, 0.46088963,
        1.        ],
       [1.        , 0.53128561, 0.36787944, 1.        , 0.53128561,
        0.36787944],
       [0.53128561, 1.        , 0.46088963, 0.53128561, 1.        ,
        0.46088963],
       [0.36787944, 0.46088963, 1.        , 0.36787944, 0.46088963,
        1.        ]])
'''
相关推荐
全栈弄潮儿24 分钟前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技26 分钟前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y28 分钟前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川37 分钟前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸40 分钟前
排序算法介绍
python·算法·排序算法
笔墨登场说说1 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Rocky Ding*1 小时前
MOSS-VL技术原理深度解析:让视觉流持续进入生成过程,实时 Agent 才有架构基础
论文阅读·人工智能·深度学习·机器学习·aigc·多模态·ai-native
一木 之林1 小时前
Dify学习笔记 01 · 平台入门与实战:部署、五类应用、RAG与MCP(第1-16集)
人工智能·笔记·学习·计算机视觉
田里的水稻1 小时前
EP_ROS2的相机视频流传递说明
数码相机·机器学习
加强洁西卡1 小时前
【AI】机器学习常见的指标及其解释
人工智能·机器学习