首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在列车结束后,nltk naivebayes分类器如何学习更多的特征?

在列车结束后,nltk naivebayes分类器如何学习更多的特征?
EN

Stack Overflow用户
提问于 2016-11-06 08:25:05
回答 1查看 172关注 0票数 0

我现在正在做nltk_classifier分类句子的分类。

所以我已经用11000句的特征训练了分类器。

代码语言:javascript
运行
复制
train_set, test_set = featuresets[1000:], featuresets[:1000]
classifier = naivebayes.NaiveBayesClassifier.train(train_set)

但我想增加更多的(句子,类别)特征,以升级分类器。我唯一知道的方法就是把特写添加到学习特写的列表中。这样就能制造出新的分类器。但我认为这种方法并不有效,因为训练一个或几个句子需要很长时间。

有什么好的方法可以通过增加特征集来提高分类器的质量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-06 21:26:47

两件事。

  1. 朴素的贝斯通常是超快的。它只访问你所有的训练数据一次,并积累特征类的共现状态。在此之后,它使用统计数据来构建模型。通常,仅仅使用新的(增量)数据重新训练您的模型并不是一个问题。
  2. 当新数据出现时,只要您仍然将特性类统计数据存储在某个地方,就可以不重做上述步骤。现在,您只需以步骤1中相同的方式访问新数据,并继续更新功能类共现状态。在一天结束时,您有新的分子(m)和分母(n),这既适用于类优先级P(C),也适用于给定类P(W|C)的特征概率。您可以通过m/n导出概率。

文档分类中贝叶斯公式的友好提示

-给定一个文档D,该文档属于C_j类别的概率是:

代码语言:javascript
运行
复制
P(C_j|D) = P(D|C_j)*P(C_j)/P(D)

-这种可能性与以下因素成正比:

代码语言:javascript
运行
复制
P(C_j|D) ~ P(W1|C_j) P(W2|C_j) ... P(Wk|C_j) * P(C_j) 

根据:

  • 朴素的贝叶斯假设(所有单词,例如,文档中的W1, W2, ..., Wk都是独立的),
  • 丢弃P(D),因为每个类都有与分母相同的P(D) (因此我们说比例不等于)。

--现在右侧的所有概率都可以由相应的分数(m/n)计算,其中mn存储(或可以导出)在特征类共现矩阵中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40447335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档