我是一个新手,在Sklearn中使用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中做什么最好的方法是什么?