向 Sklearn 分类器添加功能

Posted

技术标签:

【中文标题】向 Sklearn 分类器添加功能【英文标题】:Add Features to An Sklearn Classifier 【发布时间】:2015-07-15 07:47:33 【问题描述】:

我正在构建一个 SGDClassifier,并使用一个 tfidf 转换器。除了从 tfidf 创建的功能之外,我还想添加其他功能,例如文档长度或其他评级。如何将这些功能添加到功能集中?以下是分类器在管道中的构造方式:

data = fetch_20newsgroups(subset='train', categories=None)
pipeline = Pipeline([
    ('vect', CountVectorizer()),
    ('tfidf', TfidfTransformer()),
    ('clf', SGDClassifier()),
])
parameters = 
    'vect__max_df': (0.5, 0.75, 1.0),
    'vect__max_features': (None, 5000, 10000, 50000),
    'vect__ngram_range': ((1, 1), (1, 2)),  # unigrams or bigrams
    'tfidf__use_idf': (True, False),


grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1)
grid_search.fit(data.data, data.target)
print(grid_search.best_score_)

【问题讨论】:

【参考方案1】:

你可以使用特征联合http://scikit-learn.org/stable/modules/pipeline.html#featureunion-composite-feature-spaces

文档https://scikit-learn.org/0.18/auto_examples/hetero_feature_union.html 中有一个很好的示例,我认为它完全符合您的要求。见TextStats变压器。

[更新:该示例适用于 scikit learn =

问候,

【讨论】:

由于 example-hetero-feature-union 的链接给出了“找不到页面”,这可能是一个替代方案:scikit-learn.org/stable/modules/…

以上是关于向 Sklearn 分类器添加功能的主要内容,如果未能解决你的问题,请参考以下文章

sklearn:文本分类交叉验证中的向量化

使用gensim和sklearn搭建一个文本分类器:文档向量化

训练具有多个特征的 sklearn 分类器

sklearn 随机森林分类器可以处理分类变量吗?

向多项式朴素贝叶斯分类器添加功能 - Python

Sklearn:分类估算器?