[ https://issues.apache.org/jira/browse/FLINK-1737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14740443#comment-14740443 ]
ASF GitHub Bot commented on FLINK-1737: --------------------------------------- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/1078#discussion_r39253106 --- Diff: flink-staging/flink-ml/src/main/scala/org/apache/flink/ml/math/DenseVector.scala --- @@ -102,6 +102,38 @@ case class DenseVector( } } + /** Returns the outer product (a.k.a. Kronecker product) of `this` + * with `other`. The result will given in [[org.apache.flink.ml.math.SparseMatrix]] + * representation if `other` is sparse and as [[org.apache.flink.ml.math.DenseMatrix]] otherwise. + * + * @param other a Vector + * @return the [[org.apache.flink.ml.math.Matrix]] which equals the outer product of `this` + * with `other.` + */ + override def outer(other: Vector): Matrix = { + val numRows = size + val numCols = other.size + + other match { + case SparseVector(size, indices, data_) => + val entries: Array[(Int, Int, Double)] = for { + i <- (0 until numRows).toArray + j <- indices + value = this(i) * other(j) --- End diff -- It might make sense to work directly on the `data` array here, because every `other(j)` call entails a binary search operation. If you zip `data` with `indices`, then you should have all information necessary to access `this(i)` and to have the value for `other(j)`. > Add statistical whitening transformation to machine learning library > -------------------------------------------------------------------- > > Key: FLINK-1737 > URL: https://issues.apache.org/jira/browse/FLINK-1737 > Project: Flink > Issue Type: New Feature > Components: Machine Learning Library > Reporter: Till Rohrmann > Assignee: Daniel Pape > Labels: ML, Starter > > The statistical whitening transformation [1] is a preprocessing step for > different ML algorithms. It decorrelates the individual dimensions and sets > its variance to 1. > Statistical whitening should be implemented as a {{Transfomer}}. > Resources: > [1] [http://en.wikipedia.org/wiki/Whitening_transformation] -- This message was sent by Atlassian JIRA (v6.3.4#6332)