繁体   English   中英

一个简单的余弦相似度

[英]A simple Cosine similarity

  • Vectors 包含一列,m 行:每行包含 n 个浮点数的数组;
  • 我想要 amxn 矩阵,转置它并在那里做产品
  • 我正在使用 C#

另外,我从官方文档https://numerics.mathdotnet.com/Matrix.html中读到了这个

“例如,如果您有一组向量,请考虑将它们存储在向量列表或数组中,而不是矩阵中(当然,除非您需要矩阵运算)。”

那么请用 Math.net.numerics 实现这一目标的优化方法是什么? 提前致谢

#更新

我收到此错误

CS1503  Argument 3: cannot convert from'System.Collections.Generic.IEnumerable<float[]>' to 'float[]'

使用此代码:

IEnumerable<float[]> Vectors = predictions.GetColumn<float[]>("Features");
var x = new M.DenseMatrix(1, Vectors.Count(), Vectors);

解决了

var Matrix = M.SparseMatrix.OfColumnArrays(Vectors);

细节:

public Matrix<T> SparseOfColumnArrays(IEnumerable<T[]> columns);

期望具有 T=float 的相同类型的向量,所以它起作用了。 我建议您阅读 IDE 中的库方法。 2-由于矩阵不密集,我切换到稀疏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM