【发布时间】:2020-01-02 05:32:39
【问题描述】:
我想用 sklearn imputer 实现一个客户转换器,例如 sklearn.base.SimpleImputer。
输出应该是一个数据框,
我有以下代码,但不确定是否正确
class DFSimpleImputer(TransformerMixin):
def __init__(self, *args, **kwargs):
self.imp = SimpleImputer(*args, **kwargs)
def fit(self, X, y=None, **fit_params):
self.imp.fit(X)
return self
def transform(self, X):
# assumes X is a DataFrame
Ximp = self.imp.transform(X)
Xfilled = pd.DataFrame(Ximp, index=X.index, columns=X.columns)
return Xfilled
【问题讨论】:
-
为什么你需要在你的 imputer 中有这个?如果您需要将其作为数据框,您也可以这样做 pd.DataFrame(imp_mean.transform(X)) ?
-
任何自定义转换器也应该继承自
BaseEstimator。 -
@rvf,谢谢解答,transformerMixin 对transformer(fit、transform 和fit_transform)来说已经足够了
标签: python-3.x scikit-learn imputation