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.        ]])
'''
相关推荐
FriendshipT1 小时前
Ultralytics:解读CBLinear模块
人工智能·pytorch·python·深度学习·目标检测
逸模1 小时前
多业态连锁,如何同步铺开各类门店
大数据·人工智能·笔记·工程·公装·连锁店
AI开发发烧友2 小时前
LangGraph多Agent协作实战:以物流售前场景为例的5 Agent工作流设计
python
码云骑士2 小时前
70-多Agent协作-CrewAI-AutoGen-角色分工与信息传递协议
python
mftang2 小时前
TensorFlow Lite Micro:面向TinyML系统的嵌入式机器学习推理框架
人工智能·机器学习·tensorflow
Hachi被抢先注册了2 小时前
Skills总结
python
乐橙开放平台2 小时前
明厨亮灶笔记:乐橙轻应用 H5 + 小程序插件,一套 BFF 出两张播放凭证
人工智能·笔记·物联网·小程序·音视频·notepad++
用户0332126663672 小时前
使用 Python 在 PowerPoint 中创建折线图和条形图
python
benchmark_cc2 小时前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
不如语冰2 小时前
AI大模型入门-参数的传递
数据结构·人工智能·pytorch·python