问题标签 [naivebayes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1236 浏览

python - Python -- SciKit -- Classifer 的文本特征提取

我必须将文章分类到我的自定义类别中。所以我选择了 SciKit 的 MultinomialNB。我正在做监督学习。所以我有一个编辑每天查看文章然后标记它们。一旦它们被标记,我就会将它们包含在我的学习模型中,依此类推。下面是了解我在做什么和使用什么的代码。(我不包括任何导入行,因为我只是想让您了解我在做什么)(参考

现在我在自定义标记后准备好了一个分类器,它可以很好地处理新文章并且像魅力一样工作。现在已经出现了针对每个类别获取最常用词的要求。简而言之,我必须从学习模型中提取特征。通过查看文档,我只发现了如何在学习时提取文本特征。

但是一旦学会并且我只有模型文件(.pkl),是否可以加载该分类器并从中提取特征?

是否有可能针对每个类别或类别获得最常用的术语?

0 投票
2 回答
100 浏览

r - 尝试使用 Apply 处理 144k 行,但结果太慢

我正在 R 中编写朴素贝叶斯的自定义修改版本,并且由于正在处理的数据的大小而遇到运行时问题。我需要处理约 145k 行,每行有 95 个元素。我目前正在使用以下函数来获得朴素贝叶斯的第一步。

在此函数中,sdBreakdown 和 meanBreakdown 是每个可能解决方案的聚合值。每次运行应用时,我们都会获得每个给定列的概率。应用程序在矩阵上按如下方式运行,其中每一行是我们试图分类的另一个元素。

这是我目前如何调用每个应用程序。这为每个可能的分类 1-9 给出了每个元素的概率。我不想使用开箱即用的朴素贝叶斯,因为我试图更好地理解 R 并且想要尝试一些潜在的准确性改进。

我不确定如何以更及时的方式运行它,尽管按照编码它需要几个小时,如果我在运行时积极从事其他项目,可能需要 7 或 8 个小时。

编辑:

为了澄清这个例子中的数据。

temp 是 145kx95 矩阵,其中每一行是要分类的项目,每一列是用数字表示的质量。

meanBreakdown 是一个 9x95 矩阵,每一行是一个不同的分类,每一列对应于该分类的平均平均质量。

sdBreakdown 与 meanBreakdown 相同,只是存储标准偏差而不是平均平均值。

并行处理似乎可以工作,但我不认为(显然我错了)数据集足够大以至于有必要。

编辑2:这是完整的代码。如果它是非常糟糕的 R 代码,请原谅我。我一直是 C 开发人员,所以 R 在思想上发生了很大变化,我只在 R 中完成了少数几个小项目来了解其中的来龙去脉。

0 投票
1 回答
108 浏览

algorithm - 个性化内容的算法

我不确定 stackoverflow 是否是提出这个问题的正确地方,但我需要一些关于可用于个性化内容的算法的建议(确切地说是文章)。我将从用户最常阅读的文章中收集有关用户的信息。收集到的所有信息将被转换为单独的关键字,并重复计数。例如:关键字计数

我在考虑朴素贝叶斯分类算法,但问题是我真的没有关于不需要的文章的数据。

0 投票
1 回答
284 浏览

matlab - MATLAB 朴素贝叶斯对象存储

使用后:

要创建一个朴素贝叶斯分类器对象,我想将这些对象的 N-by-D 保存在一个矩阵中。我试图做以下事情

但我得到:“使用 NaiveBayes/subsasgn 时出错(第 9 行)NaiveBayes 类不支持下标分配。”

如何在 MATLAB 中填充朴素贝叶斯分类器矩阵?

请注意,使用 fitNaiveBayes 或 fitcnb 会导致相同的问题,因为它们都返回相同类型的对象。

谢谢

0 投票
1 回答
2276 浏览

python-2.7 - 如何使用 Python Pandas 从 NLTK 运行朴素贝叶斯?

我有一个带有特征(人名)和标签(人的种族)的 csv 文件。我可以使用 Python Pandas 设置数据框,但是当我尝试将其与 NLTK 模块链接以运行朴素贝叶斯时,我收到以下错误:

这是我的代码:

样本数据:

0 投票
1 回答
362 浏览

python - 朴素贝叶斯多项式

我正在使用朴素贝叶斯多项式模型。我应该使用 train 方法中看到的伪代码。所以这些是我的问题:

1)我已经放入了大部分代码,但我有一些问题主要是在提取词汇,计算类中的文档数量,以及连接类中所有文档的文本。

2)我还注意到我需要的火车方法只需要文档(又名 train_doc)。所以我不知道如何调整以获得 C 类。

0 投票
1 回答
561 浏览

python - 是否可以在 scikit learn 中使用管道对象的最终估计器的属性?

我创建了一个使用 countvectorizer 和 MultinomialNB 的管道对象。MultinomialNB 实例有一个名为 intercept_ 的属性。如果我尝试使用 Pipeline 对象访问此属性,则会收到“Pipeline”对象没有属性“intercept_”的错误。我想知道是否有一种方法可以访问 Pipeline 实例中最终估计器类的属性。我要提前感谢。

0 投票
1 回答
888 浏览

python-2.7 - 无法使用 Pandas 和 NLTK 在 Python 中训练朴素贝叶斯(机器学习)

这是我想要做的。我有一个.csv。第 1 列包含人名(即:“Michael Jordan”、“Anderson Silva”、“Muhammad Ali”),第 2 列包含人们的种族(即:英语、法语、中文)。

在我的代码中,我使用所有数据创建了 pandas 数据框。然后创建额外的数据框:一个只有中文名字,另一个只有非中文名字。然后我创建单独的列表。

three_split 函数通过将每个名称拆分为三个字符的子字符串来提取它们的特征。例如,将“Katy Perry”转化为“kat”、“aty”、“ty”、“y p”……等。

然后我用朴素贝叶斯训练,最后测试结果。

运行我的代码时没有任何错误,但是当我尝试直接从数据库中使用非中文名称并期望程序返回 False(不是中文)时,它会为我测试的任何名称返回 True(中文)。任何想法?

0 投票
2 回答
1275 浏览

python-2.7 - 如何用sci-kit learn识别误分类文本文件的ID/名称/标题

我正在为文本分类构建自己的分类器,但目前我正在使用 sci-kit learn 来弄清楚一些事情。我使用 NB 分类器对我的几个文本文件进行了分类。我正在使用 26 个文本文件手动分类为 2 个类别,每个文件的编号在 01 - 26 之间(即“01.txt”等)。

我的代码和结果:

我无法弄清楚如何识别错误分类文件的 ID,以查看哪些确切文件被错误分类(例如“05.txt”和“23.txt”)。这对 sci-kit learn 有可能吗?

最好的,

古兹德

0 投票
1 回答
906 浏览

java - Weka 分类器精度

我有来自 17 个类的 73,841 个数据实例,我用它们来训练带有 WEKA 的分类器。数据已使用 FFT 进行过滤,每个实例都有三个点。

我尝试了三个分类器:SMO/J48/朴素贝叶斯。

SMO/朴素贝叶斯的准确率达到 16%

但是 J48 分类器的准确率达到了 98/99%。

问题:

  1. 我可以安全地假设 J48 分类器犯了某种错误吗?为什么两个结果如此相似,而另一个却完全不同?

  2. 我可以做些什么来提高准确性?是不是有太多的类,这些类根本就不能分离?

谢谢