sklearn.base中的BaseEstimator(Python)

neg*_*hez 18 classification scikit-learn

我一直在学习和练习sklearn图书馆.当我参加比赛Kaggle,我发现使用所提供的样本代码BaseEstimatorsklearn.base.我不太明白如何/为何BaseEstimator使用.

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]. 

...
Run Code Online (Sandbox Code Playgroud)

这是我通常在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)
Run Code Online (Sandbox Code Playgroud)

我在sklearn的官方页面上找不到一个好的例子或任何文件.虽然我sklearn.base在github上找到了代码,但是我想要一些例子并解释它是如何使用的.

UPDATE

以下是示例代码的链接:https: //github.com/benhamner/JobSalaryPrediction/blob/master/features.py 更正:我刚刚意识到BaseEstimator用于课程SimpleTransform.我想我的第一个问题是为什么需要它?(因为它没有在计算中的任何地方使用),另一个问题是定义拟合,什么是X,以及如何分配?因为通常我看到:

def mymethod(self, X, y=None):
     X=self.features
     # then do something to X[Column_name]
Run Code Online (Sandbox Code Playgroud)

ogr*_*sel 19

BaseEstimator除此之外还提供了get_paramsset_params方法的默认实现,请参阅[源代码].这对于使模型网格可GridSearchCV用于自动参数调整以及在组合时在其他方面表现良好非常有用Pipeline.