2013-03-05 18 views
6

Uczę się i ćwiczę bibliotekę sklearn na własną rękę. Kiedy brałem udział w zawodach Kaggle, zauważyłem dostarczony przykładowy kod używany BaseEstimator z sklearn.base. Nie bardzo rozumiem, jak/dlaczego jest używany BaseEstimator.BaseEstimator w sklearn.base (Python)

from sklearn.base import BaseEstimator 
class FeatureMapper: 
    def __init__(self, features): 
     self.features = features  #features contains feature_name, column_name, and extractor(which is CountVectorizer) 

    def fit(self, X, y=None): 
     for feature_name, column_name, extractor in self.features: 
      extractor.fit(X[column_name], y) #my question is: is X features? if yes, where is it assigned? or else how can X call column_name by X[column_name]. 

... 

To, co zwykle zobaczyć na stronie samouczka sklearn za:

from sklearn import SomeClassifier 
X = [[0, 0], [1, 1],[2, 2],[3, 3]] 
Y = [0, 1, 2, 3] 
clf = SomeClassifier() 
clf = clf.fit(X, Y) 

nie mogłem znaleźć dobrego przykładu ani żadnych dokumentacji na oficjalnej stronie sklearn użytkownika. Chociaż znalazłem kodna githubie, ale chciałbym podać kilka przykładów i wyjaśnienie, w jaki sposób jest on używany.

UPDATE

Oto link do przykładowego kodu: https://github.com/benhamner/JobSalaryPrediction/blob/master/features.py Korekta: Właśnie sobie sprawę BaseEstimator służy do klasy SimpleTransform. Domyślam się, że moje pierwsze pytanie brzmi: dlaczego jest potrzebne? (ponieważ nie jest ona nigdzie używana w obliczeniach), drugim pytaniem jest, kiedy zdefiniować dopasowanie, co to jest X i jak jest przypisany? Ponieważ zwykle widzę:

def mymethod(self, X, y=None): 
    X=self.features 
    # then do something to X[Column_name] 
+0

Czy możesz utworzyć link do tego przykładowego kodu? 'BaseEstimator' jest importowany we fragmencie, który publikujesz, ale w rzeczywistości nie jest używany. –

Odpowiedz

8

BaseEstimator zapewnia między innymi implementację domyślną metod get_params i set_params patrz the source code. Jest to użyteczne, aby umożliwić przeszukiwanie siatki modelu z GridSearchCV w celu automatycznego dostrajania parametrów i zachowywać się dobrze w połączeniu z innymi po połączeniu w Pipeline.

+0

Myślę, że numer linii dryfował w tym łączu ... –