2013-03-05 4 views
6

Ho studiato e praticato la libreria sklearn da solo. Quando ho partecipato alle competizioni di Kaggle, ho notato che il codice di esempio fornito è BaseEstimator da sklearn.base. Non capisco come/perché sia ​​usato lo BaseEstimator.BaseEstimator in 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]. 

... 

Questo è quello che di solito vedere a pagina tutorial di sklearn:

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) 

non riuscivo a trovare un buon esempio o qualsiasi documentazione sulla pagina ufficiale di sklearn. Anche se ho trovato il codice sklearn.base su github, ma vorrei alcuni esempi e spiegazioni su come viene utilizzato.

UPDATE

ecco il link per il codice di esempio: https://github.com/benhamner/JobSalaryPrediction/blob/master/features.py Correzione: Ho appena realizzato BaseEstimator viene utilizzato per la classe SimpleTransform. Credo che la mia prima domanda sia: perché è necessario? (poiché non è utilizzato in nessuna parte del calcolo), l'altra domanda è quando definisci la forma, cos'è X e come viene assegnato? Perché di solito vedo:

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

Potrebbe collegarsi a tale codice di esempio? 'BaseEstimator' è importato nello snippet che pubblichi, ma non è effettivamente usato. –

risposta

8

BaseEstimator fornisce tra l'altro un'implementazione di default per i metodi get_params e set_params, vedere the source code. Ciò è utile per rendere la griglia del modello in grado di eseguire ricerche con GridSearchCV per la sintonizzazione automatica dei parametri e comportarsi bene con gli altri se combinati in un Pipeline.

+0

Penso che il numero di linea sia andato alla deriva in quel collegamento ... –