python - Sklearn 流水线的核外学习

标签 python scikit-learn text-classification

我是一名新手,正在使用 SGDClassifier 在 Sklearn 中做一些工作,以使用标签对单句文本进行分类。 (例如,想想火腿/垃圾邮件)这是我的管道:

clf = SGDClassifier(fit_intercept=True, loss='modified_huber', alpha=.0001, shuffle=True,
                      n_iter=15, n_jobs=-1, penalty='elasticnet')
vectorizer = TfidfVectorizer(analyzer='char_wb', ngram_range=(3, 5), lowercase=True, stop_words=stopset,
                           use_idf=True, norm='l2')
pipeline = Pipeline([
    ('mapper', vectorizer),
    ('clf', clf),
])

我熟悉 partial_fit 的用法以避免将整个训练数据集加载到内存中(核外学习),但我的问题是分类器是否可以调用partial_fit初始训练集加载到内存中之后。

在我的用例中,想象一下我的算法在训练后必须分类的每个文本都有链接到它的“相关”文本,这些文本具有极其相似的特征,唯一的区别是文本中的拼写错误。我希望这些“相关”文本在与原始电子邮件相同的标签下自动添加到分类器的知识中,这样逃避算法的常见拼写错误也将被正确标记。

本质上,我想要一个可更新的分类器,在 python 中执行此操作的最佳方法是什么?

最佳答案

我理解你的问题的方式是,你有一个已经在一些初始集上预训练的分类器,你想对新的观察结果进行预测,然后添加这些观察结果(一旦我们知道实际标签是什么这些观察结果)以进一步训练您的模型。

我实际上认为这可以很容易地通过使用这些新观察调用 partial_fit 来完成,没有附加条件(可以这么说)。 This是一个很好的例子,它似乎适合您的目的。

关于python - Sklearn 流水线的核外学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480638/

相关文章:

python - matlab函数到python函数的转换

python - 为什么改变字体大小后没有立即改变?

python - 如何从多个向量构造 numpy 数组,其中数据按 id 对齐

python - 属性错误 : 'GMM' object has no attribute 'covariances_' || AttributeError: 'module' object has no attribute 'GaussianMixture'

nlp - 如何在 NLP 中找到相似的名词短语?

python - 如何对合法领域的文本文档进行分类

python - 数据标准化

python - 如何在 Python 中搜索序列中的值?

python - 如何使用逻辑回归和 scikit 学习进行回归而不是分类

python - 如何使用 sklearn 库使用朴素贝叶斯进行文本分类?