我正在解决多标签分类问题。我有大约6百万行要处理,这些行是巨大的文本块。它们在单独的列中标记有多个标记。
有关scikit库可以帮助我扩展代码的任何建议。我在其中使用One-vs-Rest和SVM。但它们的规模不超过90-100k行。
classifier = Pipeline([
('vectorizer', CountVectorizer(min_df=1)),
('tfidf', TfidfTransformer()),
('clf', OneVsRestClassifier(LinearSVC()))])
答案 0 :(得分:3)
答案 1 :(得分:0)
HashingVectorizer
将起作用。
然后,您可以将批量转换后的文档传递给支持partial_fit
方法的线性分类器(例如SGDClassifier
或PassiveAggressiveClassifier
),然后迭代新批次。
您可以开始在保留的验证集(例如10k文档)上对模型进行评分,以便在不等待看到所有样本的情况下监控部分训练模型的准确性。
您也可以在数据分区上的多台计算机上并行执行此操作,然后对生成的coef_
和intercept_
属性求平均值,以获得所有数据集的最终线性模型。
我在2013年3月在PyData上发表的演讲中讨论过这个问题:http://vimeo.com/63269736
此tutorial on paralyzing scikit-learn with IPython.parallel中的示例代码取自:https://github.com/ogrisel/parallel_ml_tutorial