2014-12-02 59 views
2

尝试从Java使用MLlib时,使用breeze Matrix操作的正确方法是什么? 例如在斯卡拉乘法它只是“matrix * vector”。 Java中相应的功能是如何表达的?从Spark上使用Breeze MLlib

还有像“$colon$times”的方法可能通过正确的方式

breeze.linalg.DenseMatrix<Double> matrix= ... 
breeze.linalg.DenseVector<Double> vector = ... 

matrix.$colon$times(... 

一个可能需要操作实例调用... breeze.linalg.operators.OpMulMatrix.Impl2 但它的确切类型的操作实例和参数都可以用吗?

+0

您可以尝试Java的'common Math'。 – 2016-12-28 13:13:43

回答

1

说实话很辛苦。 Breeze非常使用implicits,而且它们不能很好地转换成Java。我们有一些用于信号处理的Java友好包装,但对线性代数没有任何帮助。 (我很乐意接受一个提供一些支持来包装东西的拉取请求。)

+0

好的,谢谢你的提议,但是我们多久会遇到许多潜在矩阵操作的问题?这真的可行吗?这可以处理几乎消耗整个RAM的矩阵吗?将MLlib矩阵转换(并且可能持久)并将其加载到Java更常用的矩阵库(如commons-math或parallel colt)将成为在MLlib上使用Java时的一种方式? – Mechanee 2014-12-19 11:34:33