So you are suggesting to pass the validation set as a parameter to the
__init__() of the estimator? But how do I get the current validation set
from GridSearchCV? Using my above code, do you mean something like this:

my_model = MY_MODEL()
pipe = Pipeline(steps=[("imputer", imputer), ("scaler", scaler),
('my_model', my_model)])
my_params = dict(my_model__n_epochs = [10, 20], *my_model__validation_set =
[???]*)
estimator = GridSearchCV(pipe, my_params, verbose=5, cv=5)
estimator.fit(x_train, y_train)


?

On Sun, Sep 20, 2015 at 10:10 AM, Artem <barmaley....@gmail.com> wrote:

> Hi
>
> Don't pass any parameters to fit method. Current API assumes that you set
> all the parameters in estimator's constructor (__init__ method). It's a bit
> nasty to set validation set during construction stage, but there's no
> better approach.
>
> On Sun, Sep 20, 2015 at 3:47 PM, okek padokek <defdefdef1...@gmail.com>
> wrote:
>
>> Hello,
>>
>> I am trying to implement my own estimator. It currently seems to be
>> working. My fit() function is of the form
>>
>> def fit(self, X, y=None):
>>     ....
>>     # iteratively tune the params
>>     ....
>>     return self
>>
>> I would like to modify my fit() so that it can print out validation costs
>> as it iterates:
>>
>> def fit(self, X, y=None, X_valid=None, y_valid=None):
>>     ....
>>     # iteratively tune the params
>>         #occasionally print out the cost on the validation set (X_test,
>> y_test)
>>     ....
>>     return self
>>
>> How would I go about passing the validation set when using a pipeline?
>>
>> I currently have something like this:
>>
>> my_model = MY_MODEL()
>> pipe = Pipeline(steps=[("imputer", imputer), ("scaler", scaler),
>> ('my_model', my_model)])
>> my_params = dict(my_model__n_epochs = [10, 20])
>> estimator = GridSearchCV(pipe, my_params, verbose=5, cv=5)
>> estimator.fit(x_train, y_train)
>>
>> If I instead try
>>
>> estimator.fit(x_train, y_train, x_valid, y_valid)
>>
>> then I get an error telling me that fit() does not accept the last two
>> parameters.
>>
>> How can this be done?
>>
>> Thanks
>>
>>
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> Scikit-learn-general mailing list
>> Scikit-learn-general@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>>
>>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>
>
------------------------------------------------------------------------------
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to