【问题标题】:What shape input and outputs are expected for sklearn pairwise_distance functions?sklearn pairwise_distance 函数需要什么形状的输入和输出?
【发布时间】:2017-10-08 22:52:43
【问题描述】:

我有两个形状为 (2400,) 的向量

我这样组合它们:

vecs = [matrix1, matrix2]
combined_matricies = np.array(vecs)
print("Combined shape:", combined_matricies.shape)

组合形状:(2, 2400)

然后我运行

distance_mat = pairwise_distances(combined_matricies, metric="cosine").astype('float64')
print(distance_mat.shape)

(2, 2)

为什么不是 (2, 2400)?

【问题讨论】:

  • 你为什么期望(2, 2400) 整形输出?它针对 mat1 中的所有元素对mat2 中的所有元素进行处理,而不是针对相应的元素(如果您弄错了)。
  • @VivekKumar 我不明白他们关于“样本”所指的术语!谢谢。
  • 正如我在之前的评论中所说,一个样本意味着一行。对于机器学习,一个样本意味着一组独立的观察值,它们属于一个类(用于分类任务)或一个集群(用于聚类)。简而言之,一个样本可以具有许多特征,使算法能够处理它。对于 scikit-learn,样本以行表示,特征以列表示

标签: python numpy scipy scikit-learn


【解决方案1】:

它为您提供两个大小为 2,400 的向量之间的余弦值。

所以基本上distance_mat[0, 0]distance_mat[1, 1] 是零,distance_mat[1, 0]distance_mat[0, 1] 都是大小为 1 x 2,400 的两个向量之间的余弦。

如果您想要按元素使用产品:

np.multiply(matrix1, matrix2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-18
    • 2020-01-04
    • 2018-01-27
    • 2022-11-18
    • 1970-01-01
    • 2020-11-18
    • 2018-04-06
    • 2016-12-18
    相关资源
    最近更新 更多