You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Yanbo Liang (JIRA)" <ji...@apache.org> on 2015/07/12 10:20:06 UTC

[jira] [Comment Edited] (SPARK-9003) Add map/update function to MLlib/Vector

    [ https://issues.apache.org/jira/browse/SPARK-9003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14623704#comment-14623704 ] 

Yanbo Liang edited comment on SPARK-9003 at 7/12/15 8:19 AM:
-------------------------------------------------------------

Yes, I can provide an example which may be benefit of these function.
For example:
val originalPrediction = Vectors.dense(Array(1, 2, 3))
val expected = Vectors.dense(Array(10, 20, 30))

In some cases, we can use "~==" to compare two Vector/Matrix which is defined in org.apache.spark.mllib.util.TestingUtils.

So currently we can only code as following:
val prediction = Vectors.dense(originalPrediction.toArray.map(x => x*10))
assert(prediction ~== expected absTol 0.01, "prediction error")

If we support map/update for Vector, we can code as:
assert(originalPrediction.map(x => x*10) ~== expected absTol 0.01, "prediction error")




was (Author: yanboliang):
Yes, I can provide an example which may be benefit of these function.
For example:
val originalPrediction = Vectors.dense(Array(1, 2, 3))
val expected = Vectors.dense(Array(10, 20, 30))

In some cases, we can use "~==" to compare two Vector/Matrix which is defined in org.apache.spark.mllib.util.TestingUtils.

So currently we can only code as following:
val prediction = Vectors.dense(originalPrediction.toArry.map(x => x*10))
assert(prediction ~== expected absTol 0.01, "prediction error")

If we support map/update for Vector, we can code as:
assert(originalPrediction.map(x => x*10) ~== expected absTol 0.01, "prediction error")



> Add map/update function to MLlib/Vector
> ---------------------------------------
>
>                 Key: SPARK-9003
>                 URL: https://issues.apache.org/jira/browse/SPARK-9003
>             Project: Spark
>          Issue Type: Improvement
>          Components: MLlib
>            Reporter: Yanbo Liang
>            Priority: Minor
>
> MLlib/Vector is short of map/update function which is inconvenience for some Vector operations.
> For example:
> val a = Vectors.dense(...)
> If we want to compute math.log for each elements of a and get Vector as return value, we can only code as:
> val b = Vectors.dense(a.toArray.map(math.log))
> The code snippet is not elegant, we want it can implement:
> val c = a.map(math.log)
> Also currently MLlib/Matrix has implemented map/update function. I think Vector should also has map/update.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org