训练具有文本功能的估算器

时间:2017-07-26 20:20:54

标签: scikit-learn classification supervised-learning

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

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

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

我一直在阅读Working with Text Data with sklearn。但不清楚如何使用文本和数字功能的组合来拟合估算器。使用什么算法等。

任何指针都会非常有用!

2 个答案:

答案 0 :(得分:1)

scikit-learn提供了一个很好的实用工具类FeatureUnion,它允许组合几种特征提取方法(即连接它们产生的连接特征向量)。有关如何组合不同要素类型的tutorial。基本上,你可以做这样的事情:

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

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

答案 1 :(得分:0)

您必须将字符串类型数据转换为数字。有一些不同的方法,如单热编码,标签编码,tf-idf等。这种方法取决于你的数据如何工作,但首先你可以二进制化你的Y值,所以如果通过它1,如果你失败它是0。