25

我一直在自己学习和练习 sklearn 库。当我参加 Kaggle 比赛时,我注意到提供的示例代码BaseEstimator来自sklearn.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]. 

...

这是我通常在 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)

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

更新

以下是示例代码的链接: 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]
4

1 回答 1

31

BaseEstimatorget_params为和方法提供了一个默认实现set_params,参见[源代码]。这对于使模型网格可以搜索以GridSearchCV进行自动参数调整以及在Pipeline.

于 2013-03-06T08:15:11.377 回答