Hi Gael,
I think using list may cause problems with what I was doing. So I decided to 
change things in a way that I only need a scalar and everything works now.

But thanks for your help !

From: Gael Varoquaux [mailto:gael.varoqu...@normalesup.org]
Sent: Monday, February 16, 2015 5:39 PM
To: scikit-learn-general@lists.sourceforge.net
Cc: scikit-learn-general@lists.sourceforge.net
Subject: Re: [Scikit-learn-general] which methods do I need to implement for a 
regressor?


Your get_params looks wrong to me: it is not returning a dictionary.

Sent from my phone. Please forgive brevity and mis spelling
On Feb 16, 2015, at 20:02, "Pagliari, Roberto" 
<rpagli...@appcomsci.com<mailto:rpagli...@appcomsci.com>> wrote:

Hi Vlad/All,
Thanks for the pointers. The reason I return a copy of X is because I don't 
want to modify the dataset during grid search with cross validation (I'm not 
sure if the argument of transform is a deep copy or shallow copy).

I implemented the class like the below. Basically a transformer that does 
nothing, with no parameters.

class myTransformer(BaseEstimator, TransformerMixin):
    def __init__(self):
        pass
    def fit(self, *args, **kwargs):
        return self
    def transform(self, X, **transform_params):
        return X.copy()
    def set_params(self, **params):
        return self
    def get_params(self, deep=True):
        return None

I'm getting this error when using it in a pipeline (during grid search cv, 
where the pipeline is standard scaler + myTransformer  + svm ):
'NoneType' object has no attribute 'iteritems'

Do you know what the issue might be?


Thank you,



-----Original Message-----
From: Vlad Niculae [mailto:zephy...@gmail.com<mailto:zephy...@gmail.com>]
Sent: Monday, February 16, 2015 1:04 PM
To: 
scikit-learn-general@lists.sourceforge.net<mailto:scikit-learn-general@lists.sourceforge.net>
Subject: Re: [Scikit-learn-general] which methods do I need to implement for a 
regressor?

Hi Roberto,

This is all documented in more detail here: [1]

The transform looks good (just that you might want to add a flag to avoid 
memory copies when you can afford to destroy the original data).

It’s not clear what the intention of `my_param` is here. It’s not user 
specified, right? Conventionally, fitted attributes are suffixed with

an underscore (`self.my_param_`) and you shouldn’t initialize them in 
`__init__` (see [2])

Also, if you do intend to have user-specified attributes, this would break grid 
search, because your `set_params` function does nothing. There are 
implementations of `set_params` and `get_params` in 
`sklearn.base.BaseEstimator`, as Gael said. Just inherit from the 
`BaseEstimator` and those should work, as long as you respect the scikit-learn 
convention that the `__init__` function doesn’t change the parameters (see [3])

Hope this helps!

Yours,
Vlad

[1] 
http://scikit-learn.org/stable/developers/index.html#rolling-your-own-estimator
[2] http://scikit-learn.org/stable/developers/index.html#estimated-attributes
[3] http://scikit-learn.org/stable/developers/index.html#parameters-and-init

 On 16 Feb 2015, at 12:52, Pagliari, Roberto 
<rpagli...@appcomsci.com<mailto:rpagli...@appcomsci.com>> wrote:

 I looked into some examples I found online but I’m a bit confused.

 Supposed I want to implement my own transformer, something similar to the 
standard scaler. Would this be sufficient to be used in a pipeline, or should 
it be done differently?


 class ModelTransformer(TransformerMixin):

     def __init__(self, model):
         self.my_param = None

     def fit(self, *args, **kwargs):
         # do some

stuff
         self.my_param = something
         return self

     def transform(self, X, **transform_params):
         # do something with self.myparam and X.copy()
         return X.copy()

     def set_params(**params):
         return self

     def get_params(deep=True):
         return None

 Thank you,


________________________________

 -------- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT
 Server from Actuate! Instantly Supercharge Your Business Reports and
 Dashboards with Interactivity, Sharing, Native Excel Exports, App
 Integration & more Get technology previously reserved for
 billion-dollar corporations, FREE
 http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.
 clktrk

________________________________

 Scikit-learn-general mailing list
 
Scikit-learn-general@lists.sourceforge.net<mailto:Scikit-learn-general@lists.sourceforge.net>
 https://lists.sourceforge.net/lists/listinfo/scikit-learn-general



________________________________

Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! 
Instantly Supercharge Your Business Reports and Dashboards with Interactivity, 
Sharing, Native Excel Exports, App Integration & more Get technology previously 
reserved for billion-dollar corporations, FREE 
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk

________________________________

Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net<mailto:Scikit-learn-general@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

________________________________

Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk

________________________________

Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net<mailto:Scikit-learn-general@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to