tum*_*eed 2 machine-learning python-3.x scikit-learn
从我准备好的文档中读到:
FunctionTransformer 将其 X(和可选的 y)参数转发给用户定义的函数或函数对象,并返回该函数的结果。这对于无状态转换非常有用,例如获取频率对数、进行自定义缩放等。
但是,我不明白这个功能有什么用处。有人能解释一下这个功能的目的吗?
除了简单地包装给定的用户定义函数之外,FunctionTransformer还提供了其他 sklearn 估计器(例如,fit和transform)的一些标准方法。这样做的好处是您可以将任意的、无状态的转换引入 sklearn Pipeline,它结合了多个处理阶段。这使得执行处理管道更容易,因为您可以简单地将数据 ( X)传递给对象的fit和transform方法,Pipeline而不必单独显式地应用管道的每个阶段。
这是直接从 sklearn 文档(位于此处)复制的示例:
def all_but_first_column(X):
return X[:, 1:]
Run Code Online (Sandbox Code Playgroud)
def drop_first_component(X, y):
"""
Create a pipeline with PCA and the column selector and use it to
transform the dataset.
"""
pipeline = make_pipeline(
PCA(), FunctionTransformer(all_but_first_column),
)
X_train, X_test, y_train, y_test = train_test_split(X, y)
pipeline.fit(X_train, y_train)
return pipeline.transform(X_test), y_test
Run Code Online (Sandbox Code Playgroud)
请注意,第一个主成分并未从数据中明确删除。管道在pipeline.transform被调用时自动将转换链接在一起。
| 归档时间: |
|
| 查看次数: |
4958 次 |
| 最近记录: |