使用文本特征训练估计器

Train an estimator with text features

我有一个像这样的标记训练数据集

X = [tag, design_version, runtime, error_msg], Y = 'PASS'/'FAIL'
'tag' = string
'design_version' = string
'runtime' = number
'error_msg' = string

还有更多我可以访问但为简洁起见未在此处列出的功能(字符串、数字)。数据实际上是模拟的一组属性,标签是模拟是通过还是失败。我想用这些输入训练一个估算器;并使其在一组新属性上预测 'PASS' 或 'FAIL'。

我一直在阅读 Working with Text Data with sklearn。但不太清楚如何结合使用文本和数字特征来适应估计器。用什么算法等等

任何指点都会很有帮助!

你要把字符串类型的数据转换成数字。有不同的方法,如单热编码、标签编码、tf-idf 等。这些方法取决于你的数据如何工作,但首先你可以二值化你的 Y 值,如果通过它的 1,如果你失败这是 0.

scikit-learn 提供了一个名为 FeatureUnion which allows to combine several feature extraction methods (i.e. concatenate feature vectors produced by them). There is a tutorial 的实用程序 class,用于介绍如何组合不同的特征类型。基本上,您可以这样做:

fe = FeatureUnion([
    ('tag', Pipeline([
        ('selector', ItemSelector(key='tag')),
        ('tfidf', TfidfVectorizer(ngram_range=(3,5), analyzer='char'))),
    ])),
    ('runtime',  # ...transformer for runtime feature
    # ... etc
])

(ItemSelector 是教程中定义的自定义class)。