Сочетание классов выделения функций в scikit-learn

Я использую sklearn.pipeline.Pipeline для создания экстракторов функций и классификатора. Есть ли способ объединить несколько классов выбора функций (например, из sklearn.feature_selection.text) параллельно и присоединить их выход?

Мой код выглядит следующим образом:

pipeline = Pipeline([
    ('vect', CountVectorizer()),
    ('tfidf', TfidfTransformer()),
    ('clf', SGDClassifier())])

Это приводит к следующему:

vect -> tfidf -> clf

Я хочу указать конвейер, который выглядит следующим образом:

vect1 -> tfidf1 \
                 -> clf
vect2 -> tfidf2 /

Ответы

Ответ 2

я пробовал следующее решение, но при использовании только функций TFIDF + BOW он дает точность: 0,899029126214, когда я добавил к ним лексические характеристики: точность: 0,7747572815533981 я использовал фуруньюон для объединения матрицы тех же характеристик (TFIDF + лук) затем я использовал стек h.stack для сложения featureunion.vector + лексического вектора, код которого выглядит следующим образом:

# average number of words per sentence

    fvs_lexical[e, 0] = words_per_sentence.mean()
    # sentence length variation
    fvs_lexical[e, 1] = words_per_sentence.std()
    # Lexical diversity
    fvs_lexical[e, 2] = len(vocab) / float(len(words))
# apply whitening to decorrelate the features
fvs_lexical = whiten(fvs_lexical)
#bag of wrods features
bow_vectorizer = CountVectorizer(max_df=0.90, min_df=2, max_features=1000, stop_words='english') 
#tfidf 
tfidf_vectorizer = TfidfVectorizer(max_df=0.90, min_df=2, max_features=1000, stop_words='english') 
#vectorizer and fitting for the unified features 
vectorizer = FeatureUnion([  ("baw", bow_vectorizer),("tfidf", tfidf_vectorizer)
fvs_lexical_vector = CountVectorizer(fvs_lexical)
x1 =vectorizer.fit_transform (train['text'].values.astype('U'))
x2 =fvs_lexical_vector.fit_transform (train['text'].values.astype('U'))
x= scipy.sparse.hstack((x2,x3),format='csr')
y = np.asarray(train['label'].values.astype('U')) 

Затем я запустил логистическую регрессию