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.        ]])
'''
相关推荐
代码游侠27 分钟前
学习笔记——数据结构学习
linux·开发语言·数据结构·笔记·学习
vvoennvv29 分钟前
【Python TensorFlow】 TCN-GRU时间序列卷积门控循环神经网络时序预测算法(附代码)
python·rnn·神经网络·机器学习·gru·tensorflow·tcn
摇滚侠42 分钟前
零基础小白自学 Git_Github 教程,发现工具寻找灵感,笔记04
笔记·github
玦尘、1 小时前
《统计学习方法》第4章——朴素贝叶斯法【学习笔记】
笔记·机器学习
自学互联网1 小时前
使用Python构建钢铁行业生产监控系统:从理论到实践
开发语言·python
风123456789~1 小时前
【健康管理】第4章 常见慢性病 4.7慢阻肺 2/2
笔记·考证·健康管理
无心水1 小时前
【Python实战进阶】7、Python条件与循环实战详解:从基础语法到高级技巧
android·java·python·python列表推导式·python条件语句·python循环语句·python实战案例
遇到困难睡大觉哈哈1 小时前
Harmonny os——《从 TypeScript 到 ArkTS 的适配规则》精简笔记
笔记·typescript·harmonyos·鸿蒙
xwill*1 小时前
RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
人工智能·pytorch·python·深度学习
网安INF1 小时前
机器学习入门:深入理解线性回归
人工智能·机器学习·线性回归