【发布时间】:2017-08-08 05:45:39
【问题描述】:
我刚刚发现了 scikit-learn 的 Pipeline 功能,我发现它对于在训练我的模型之前测试预处理步骤的不同组合非常有用。
管道是实现fit 和transform 方法的对象链。现在,如果我想添加一个新的预处理步骤,我曾经编写一个继承自sklearn.base.estimator 的类。但是,我认为必须有一个更简单的方法。我真的需要将要应用的每个函数都包装在估算器类中吗?
例子:
class Categorizer(sklearn.base.BaseEstimator):
"""
Converts given columns into pandas dtype 'category'.
"""
def __init__(self, columns):
self.columns = columns
def fit(self, X, y):
return self
def transform(self, X):
for column in self.columns:
X[column] = X[column].astype("category")
return X
【问题讨论】:
标签: python machine-learning scikit-learn data-science