我一直在自己学习和练习 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]