[scikit-learn] Fwd: sample_weight parameter is not split when used in GridSearchCV
Manuel CASTEJÓN LIMAS
mcasl at unileon.es
Mon Jun 26 02:43:32 EDT 2017
Yes, I guess most users will be happy without using weights. Some will need
to use one single vector, but I am currently researching a weighting method
thus my need of evaluating multiple weight vectors.
I understand that it seems to be a very specific issue with a simple
workaround, most likely not worthy of any programming effort yet as there
are more important issues to address.
I guess that adding a note on this behaviour on the documentation could be
great. If some parameters can be iterated and others are not supported
knowing it provides a more solid ground to the user base.
I'm committed to spend a few hours studying the code. Should I be
successful I will come again with a pull request.
I'll cross my fingers :-)
Best
Manolo
El 24 jun. 2017 20:05, "Julio Antonio Soto de Vicente" <julio at esbet.es>
escribió:
Joel is right.
In fact, you usually don't want to tune a lot the sample weights: you may
leave them default, set them in order to balance classes, or fix them
according to some business rule.
That said, you can always run a couple of grid searchs changing that sample
weights and compare results afterwards.
--
Julio
El 24 jun 2017, a las 15:51, Joel Nothman <joel.nothman at gmail.com> escribió:
yes, trying multiple sample weightings is not supported by grid search
directly.
On 23 Jun 2017 6:36 pm, "Manuel Castejón Limas" <manuel.castejon at gmail.com>
wrote:
> Dear Joel,
>
> I tried and removed the square brackets and now it works as expected *for
> a single* sample_weight vector:
>
> validator = GridSearchCV(my_Regressor,
> param_grid={'number_of_hidden_neurons': range(4, 5),
> 'epochs': [50],
> },
> fit_params={'sample_weight': my_sample_weights },
> n_jobs=1,
> )
> validator.fit(x, y)
>
> The problem now is that I want to try multiple trainings with multiple
> sample_weight parameters, in the following fashion:
>
> validator = GridSearchCV(my_Regressor,
> param_grid={'number_of_hidden_neurons': range(4, 5),
> 'epochs': [50],
> 'sample_weight': [my_sample_weights, my_sample_weights**2] ,
> },
> fit_params={},
> n_jobs=1,
> )
> validator.fit(x, y)
>
> But unfortunately it produces the same error again:
>
> ValueError: Found a sample_weight array with shape (1000,) for an input
> with shape (666, 1). sample_weight cannot be broadcast.
>
> I guess that the issue is that the sample__weight parameter was not
> thought to be changed during the tuning, was it?
>
>
> Thank you all for your patience and support.
> Best
> Manolo
>
>
>
>
> 2017-06-23 1:17 GMT+02:00 Manuel CASTEJÓN LIMAS <mcasl at unileon.es>:
>
>> Dear Joel,
>> I'm just passing an iterable as I would do with any other sequence of
>> parameters to tune. In this case the list only has one element to use but
>> in general I ought to be able to pass a collection of vectors.
>> Anyway, I guess that that issue is not the cause of the problem.
>>
>> El 23 jun. 2017 1:04 a. m., "Joel Nothman" <joel.nothman at gmail.com>
>> escribió:
>>
>>> why are you passing [my_sample_weights] rather than just
>>> my_sample_weights?
>>>
>>>
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
>
> _______________________________________________
scikit-learn mailing list
scikit-learn at python.org
https://mail.python.org/mailman/listinfo/scikit-learn
_______________________________________________
scikit-learn mailing list
scikit-learn at python.org
https://mail.python.org/mailman/listinfo/scikit-learn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-learn/attachments/20170626/4cd4874b/attachment-0001.html>
More information about the scikit-learn
mailing list