You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Joseph K. Bradley (JIRA)" <ji...@apache.org> on 2017/01/05 19:22:58 UTC

[jira] [Commented] (SPARK-5844) Optimize Pipeline.fit for ParamGrid

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

Joseph K. Bradley commented on SPARK-5844:
------------------------------------------

Thanks for the ideas!  There is a key question here: Should the logic for caching live in Pipeline or in individual models?  I hope that it can live within Pipeline so that we can avoid implementing it separately for each model.  Here's what I'm imagining:
* Inspect the ParamGrid to figure out which Params belong with which PipelineStage
* Fit the first stage on its set of ParamMaps, and get back the corresponding set of Transformers.
* Cache...if it makes sense
* For each of these Transformers,
** Fit the next stage on its set of ParamMaps.
** etc., recursively

The main issue I see is that we may not want to cache between every stage.  I don't know the best way to handle this issue, but I bet we could sketch out a reasonable design, with some Params for specifying preferences.

I'll also comment on the related JIRA [SPARK-19071].

> Optimize Pipeline.fit for ParamGrid
> -----------------------------------
>
>                 Key: SPARK-5844
>                 URL: https://issues.apache.org/jira/browse/SPARK-5844
>             Project: Spark
>          Issue Type: Improvement
>          Components: ML
>    Affects Versions: 1.3.0
>            Reporter: Joseph K. Bradley
>
> This issue was brought up by [~prudenko] in [this JIRA | https://issues.apache.org/jira/browse/SPARK-4766].
> **Proposal**:
> When Pipeline.fit is given an array of ParamMaps, it should operate incrementally:
> * For each set of parameters applicable to the first PipelineStage,
> ** Fit/transform that stage using that set of parameters.
> ** For each set of parameters applicable to the second PipelineStage,
> *** etc.
> This is essentially a depth-first search on the parameters, where each node/level in the search tree is a PipelineStage and each node's child nodes correspond to the set of ParamMaps for that PipelineStage.
> This will avoid recomputing intermediate RDDs during model search.



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