我正在尝试使用scikit进行Naive Basyes分类。我有几个问题(我也是scikit的新手)
1) Scikit算法希望输入为numpy数组,标签为数组。在文本分类的情况下,我是否应该通过在vocab中维护单词哈希和与之相关的唯一id,将每个单词映射为一个数字(id)?这是scikit的标准做法吗?
2) 如果将相同的文本分配给多个类,我应该如何进行。一个明显的方法是为每个相关标签复制每个训练示例。还有更好的表现吗?
3) 类似地,对于测试数据,我将如何获得与一个测试相关联的多个类?
我正在使用http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html作为我的基地。
1)是。使用feature_extraction模块中的DictVector或HashVector。2) 这是一个多标签问题。也许可以使用multi_class模块中的OneVsRestClassifier。它将为每个类训练一个单独的分类器。3) 使用多标签分类器/每个calss一个分类器可以做到这一点。
看看http://scikit-learn.org/dev/auto_examples/grid_search_text_feature_extraction.html和http://scikit-learn.org/dev/auto_examples/plot_multilabel.html