[ 
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)

Reply via email to