在尝试使用Java中的MLlib时,使用breeze Matrix操作的正确方法是什么?对于例如scala中的乘法它只是“matrix * vector
”。如何用Java表示相应的功能?
有一些方法,如“$colon$times
”,可以通过正确的方式调用
breeze.linalg.DenseMatrix<Double> matrix= ...
breeze.linalg.DenseVector<Double> vector = ...
matrix.$colon$times( ...
一个人可能需要一个运算符实例... breeze.linalg.operators.OpMulMatrix.Impl2
但是要使用哪个精确类型的Operation实例和参数?
说实话,这很难。 Breeze非常大量地使用了implicits,它们只是不能很好地转换为Java。我们有一些用于信号处理的Java友好包装器,但没有线性代数。 (我很乐意接受拉动请求,为包装物提供一些支持。)
看看https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/mllib/linalg/BLAS.html,其中包含许多BLAS线性代数运算。这些可以由Scala和Java使用。