在sklearn管道中使用FunctionTransformer

时间:2019-10-29 11:31:56

标签: python machine-learning scikit-learn pipeline

我正在尝试使用涉及以下三个步骤的sklearn管道。 1.从数据框中提取一列 2.处理字符串以返回第一个字符 3.将字符转换为ordinalFeature

我尝试了以下管道

def extract_first(X):
   " returns a Pandas Series with the first element of each value in the Series"
   return X.apply(lambda x: str(x)[0])

code_pipe = Pipeline(steps= [
     ('fs', FeatureSelector(['Cabin'])),
     ('extract_Cabin', FunctionTransformer(extract_Cabin)),
     ('ordinalEncoding', OrdinalEncoder())
])  

失败,并显示错误-

ValueError:预期的2D数组,取而代之的是1D数组: array = ['0']。如果数据具有单个特征,则使用array.reshape(-1,1)对其数据进行整形;如果数据包含单个样本,则使用array.reshape(1,-1)对数据进行整形。

0 个答案:

没有答案