Hi Cesar,
I had a similar issue. Yes for now it’s better to do A,B,C outside a crossvalidator. Take a look to my comment <https://issues.apache.org/jira/browse/SPARK-4766?focusedCommentId=14320038&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14320038> and this jira <https://issues.apache.org/jira/browse/SPARK-5844>. The problem is that transformers could also have hyperparameters in the future (like word2vec transformer). Then crossvalidator would need to find need to find the best parameters for both transformer + estimator. It will blow number of combinations (num parameters for transformer /number parameters for estimator / number of folds).

Thanks,
Peter Rudenko

On 2015-03-18 00:26, Cesar Flores wrote:


Hello all:

I am using the ML Pipeline, which I consider very powerful. I have the next use case:

  * I have three transformers, which I will call A,B,C, that basically
    extract features from text files, with no parameters.
  * I have a final stage D, which is the logistic regression estimator.
  * I am creating a pipeline with the sequence A,B,C,D.
  * Finally, I am using this pipeline as estimator parameter of the
    CrossValidator class.

I have some concerns about how data persistance inside the cross validator works. For example, if only D has multiple parameters to tune using the cross validator, my concern is that the transformation A->B->C is being performed multiple times?. Is that the case, or it is Spark smart enough to realize that it is possible to persist the output of C? Do it will be better to leave A,B, and C outside the cross validator pipeline?

Thanks a lot
--
Cesar Flores

Reply via email to