安装管道以汇总文本和数字数据时出错

时间:2017-05-07 10:13:59

标签: python scikit-learn sklearn-pandas

我在使用scikit-learn进行K-means聚类时,在数据集上拟合管道时遇到了一些困难。为了便于说明,我们假设我有一个像以下一样的DataFrame(只有更大):

df = pd.DataFrame({'Text': ['the traveler', 'alien', 'titanic', 'real leather', 'prestige'], 'Numeric': [22, 41, 2, 78, 3]})

现在我编写了一个FunctionTransformer,用于从数据框中获取文本和数字功能:

get_text_data = FunctionTransformer(lambda x: x['Text'], validate=False)
get_numeric_data = FunctionTransformer(lambda x: x['Numeric'], validate=False)

之后我使用sklearn.pipeline编写了以下管道:

pl = Pipeline([('union', FeatureUnion(transformation_list = [('numeric_features', Pipeline([('selector', get_numeric_data), ('imputer', Imputer())])), ('text_features', Pipeline([('selector', get_text_data), 'vectorizer', TfidfVectorizer(token_pattern=TOKENS_ALPHANUMERIC))]))])), ('kmeans', KMeans(n_clusters=4))])

现在我试图适应这样的管道:

pl.fit(df)

我收到以下错误:

ValueError: blocks[0,:] has incompatible row dimensions

我有点失落,并会感谢你们对此事的任何帮助 感谢。

0 个答案:

没有答案