我不熟悉机器学习。请帮我解决这个错误。以下是我的代码: 我正在尝试创建一个自定义类catEncoder()来转换我的分类变量。在
class DFSelector(BaseEstimator, TransformerMixin):
def __init__(self, Attr):
self.Attr = Attr
def fit(self, X, y = None):
return self
def transform(self, X):
print(self.Attr)
return X[self.Attr].values
class catEncoder(BaseEstimator, TransformerMixin):
def __init__(self):
pass
def fit(self, X, y = None):
return self
def transform(self, X):
#Some-codes to encode variables
return X.values
numPipeline = [
('selector', DFSelector(numAttr)),
('imputer', Imputer(strategy = 'median'))
]
catPipeline = [
('selector', DFSelector(catAttr)),
('encoder', catEncoder())
]
fullPipe = FeatureUnion(transformer_list = [
('nPipe', numPipeline),
('cPipe', catPipeline)
])
Xtrain_ready = fullPipe.fit_transform(Xtrain)
我得到以下错误
^{pr2}$
看一下文档,问题似乎是
FeatureUnion
需要一个形式为(string,transformer)的元组列表,其中transformer是transformer对象。但是,在您的例子中,它看起来像是传递形式的元组(string,[多个转换器])。我的建议是,在不全面了解ML逻辑的情况下,尝试将这些转换器列表拆分为单独的转换器,并将其传递给FeatureUnion
。在相关问题 更多 >
编程相关推荐