【发布时间】:2019-07-20 17:28:38
【问题描述】:
我是一名刚开始使用 Python 进行深度学习的学生。
首先,我的母语不是英语,所以我可能不擅长使用翻译。
我在深度学习中使用时间序列数据创建了一个模型,可以预测未来某些情况的可能性。我们甚至使用图表完成了可视化。
但我不想通过图表将其可视化,而是想了解训练数据和测试数据之间的相似性,以及数字的准确性。
这两个数据格式如下:
In [51] : train_r
Out[51] : array([[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 0.],
注意:此数据由0和1组成。
In [52] : test_r
Out[52] : array([[0. , 0. , 0. , ..., 0.03657577, 0.06709877,
0.0569071 ],
[0. , 0. , 0. , ..., 0.04707848, 0.07826 ,
0.0819832 ],
[0. , 0. , 0. , ..., 0.04467918, 0.07355513,
0.08117414],
我用余弦相似度法确定这两类数据的准确性,但出现了错误。
from numpy import dot
from numpy.linalg import norm
cos_sim = dot(train_r, test_r)/(norm(train_r)*norm(test_r))
ValueError: shapes (100,24) and (100,24) not aligned: 24 (dim 1) != 100 (dim 0)
所以我在网上搜索了另一种方法,但没有帮助,因为大多数都是字符串分析。
我能弄清楚如何计算两个列表之间的相似度,并用数字来描述吗?
【问题讨论】:
-
仅供参考,您会收到错误消息,因为当您将
numpy.dot()与二维数组一起使用时,它会进行矩阵乘法。因此,如果您有两个形状为(100,24)的矩阵,则该操作未定义,因为矩阵乘法仅在n==q时为m x n和q x r矩阵定义。 -
你可能想看看这个答案:stackoverflow.com/questions/52030945/…
-
感谢您的 cmets。两个数组列表是多维的,一个由零组成,一个由零和一之间的小数点组成。毕竟,余弦相似度中出现错误似乎是这两个列表的维度问题。然后,我想知道如何解决这个维度问题,并计算两个列表之间的相似度,以显示深度学习的准确性。我想比较这两个列表,但我不知道该怎么做。