问题标签 [bayesian]

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 回答
405 浏览

java - Java CI-Bayes 对象的持久性

有没有人坚持过 CI-Bayes 的训练集?我有来自这个站点的示例代码:http ://www.theserverside.com/news/thread.tss?thread_id=49773

这是代码:

所以我需要能够将训练集存储在本地文件中。

以前有人做过吗?

0 投票
8 回答
4719 浏览

statistics - 理解贝叶斯定理

我正在研究一个朴素贝叶斯分类器的实现。编程集体智能通过将贝叶斯定理描述为:

以及与文档分类相关的具体示例:

Pr(A | B)我希望有人可以向我解释这里使用的符号,是什么Pr(A)意思?它看起来像某种功能,但管道(“ |”)是什么意思,等等?

0 投票
2 回答
5845 浏览

java - 计算相互信息以在 Java 中选择训练集

设想


我正在尝试对 Java GUI 应用程序中的数据集实施监督学习。用户将获得要检查的项目或“报告”列表,并将根据一组可用标签对其进行标记。一旦监督学习完成,标记的实例将被提供给学习算法。这将尝试根据用户想要查看它们的可能性对其余项目进行排序。

为了充分利用用户的时间,我想预先选择将提供有关整个报告集合的最多信息的报告,并让用户标记它们。据我了解,要计算这一点,有必要找到每个报告的所有互信息值的总和,并按该值对它们进行排序。然后,来自监督学习的标记报告将用于形成贝叶斯网络,以找到每个剩余报告的二进制值的概率。

例子


在这里,一个人为的例子可能有助于解释,并且当我无疑使用了错误的术语时可能会消除混乱:-) 考虑一个应用程序向用户显示新闻故事的例子。它根据显示的用户偏好选择首先显示哪些新闻报道。具有相关性的新闻故事的特征country of origincategorydate。因此,如果用户将来自苏格兰的单个新闻故事标记为有趣,它会告诉机器学习器,来自苏格兰的其他新闻故事对用户感兴趣的机会增加。类似于 Sport 等类别或 2004 年 12 月 12 日等日期。

可以通过为所有新闻故事选择任何顺序(例如,按类别、按日期)或随机排序它们,然后在用户进行时计算偏好来计算这种偏好。我想做的是让用户查看少量特定新闻故事并说出他们是否对它们感兴趣(监督学习部分),从而在该排序上获得一种“领先优势”。要选择向用户展示哪些故事,我必须考虑整个故事集合。这就是互信息的用武之地。对于每个故事,我想知道当它被用户分类时,它可以告诉我多少关于所有其他故事的信息。例如,如果有大量来自苏格兰的故事,我想让用户(至少)对其中一个进行分类。其他相关特征(例如类别或日期)也类似。目标是找到在分类时提供关于其他报告的最多信息的报告示例。

问题


因为我的数学有点生疏,而且我是机器学习的新手,所以在将互信息的定义转换为 Java 实现时遇到了一些麻烦。维基百科将互信息的方程式描述为:

互信息方程

但是,我不确定这是否真的可以在没有分类的情况下使用,并且学习算法还没有计算任何东西。

在我的示例中,假设我有大量新的、未标记的此类实例:

在我的具体场景中,字段/特征之间的相关性是基于精确匹配的,因此,例如,一天和 10 年的日期差异在它们的不等式上是等效的。

The factors for correlation (e.g. is date more correlating than category?) are not necessarily equal, but they can be predefined and constant. Does this mean that the result of the function p(x,y) is the predefined value, or am I mixing up terms?

The Question (finally)


How can I go about implementing the mutual information calculation given this (fake) example of news stories? Libraries, javadoc, code examples etc. are all welcome information. Also, if this approach is fundamentally flawed, explaining why that is the case would be just as valuable an answer.


PS. I am aware of libraries such as Weka and Apache Mahout, so just mentioning them is not really useful for me. I'm still searching through documentation and examples for both these libraries looking for stuff on Mutual Information specifically. What would really help me is pointing to resources (code examples, javadoc) where these libraries help with mutual information.

0 投票
5 回答
3491 浏览

artificial-intelligence - 构建 NetHack 机器人:贝叶斯分析是一个好策略吗?

我的一个朋友正在开始构建一个 NetHack 机器人(一个玩 Roguelike 游戏的机器人:NetHack)。对于类似的游戏 Angband 有一个非常好的工作机器人,但它工作的部分原因是回到城镇很容易并且总是能够在低等级浮渣获得物品。

在 NetHack 中,问题要困难得多,因为游戏奖励大胆的实验并且基本上构建为 1,000 个边缘案例。

最近我建议使用某种朴素贝叶斯分析,这与创建垃圾邮件的方式非常相似。

基本上,机器人首先会构建一个语料库,通过对它找到的每个项目或生物尝试所有可能的动作并存储该信息,例如,它有多接近死亡、负面影响的伤害。随着时间的推移,您似乎可以生成一个相当可玩的模型。

任何人都可以为我们指出一个好的开始的正确方向吗?我是在找错树还是误解了贝叶斯分析的概念?

编辑:我的朋友提出了一个允许 python 绑定的 NetHack 补丁的 github 存储库。它仍然处于相当原始的状态,但如果有人感兴趣的话......

0 投票
2 回答
706 浏览

artificial-intelligence - 设计贝叶斯网络

我有一个关于贝叶斯网络的基本问题。

  1. 假设我们有一个引擎,它有 1/3 的概率可以停止工作。我将把这个变量称为 ENGINE。
  2. 如果它停止工作,那么你的车就不能工作。如果发动机工作,那么您的汽车将在 99% 的时间内工作。我会称这为一辆车。
  3. 现在,如果您的汽车是旧的(OLD),而不是 1/3 的时间不工作,您的引擎将在 1/2 的时间停止工作。

我被要求首先设计网络,然后分配与表相关的所有条件概率。

我会说这个网络的图表类似于

现在,对于条件概率表,我执行了以下操作:

现在,我在如何定义 OLD 的概率方面遇到了麻烦。在我看来,old 不是与 ENGINE 有 CAUSE 关系的东西,我会说它更像是它的一个特征。也许在图中有不同的方式来表达这一点?如果图表确实正确,我将如何制作表格?

0 投票
2 回答
186 浏览

statistics - 对传入数据的新趋势进行盲目分类

像谷歌新闻这样的新闻媒体如何自动对有关新兴话题的文档进行分类和排名,比如“奥巴马的 2011 年预算”?

我有一堆带有棒球数据标签的文章,例如球员姓名和与文章的相关性(谢谢,opencalais),并且很想创建一个谷歌新闻风格的界面,在新帖子出现时对其进行排名和显示,尤其是新兴的帖子话题。我想可以用一些静态类别来训练一个朴素的贝叶斯分类器,但这并不能真正允许跟踪诸如“这个球员刚刚被交易到这支球队,其他球员也参与其中”这样的趋势。

0 投票
2 回答
350 浏览

filter - 论坛帖子的贝叶斯过滤

有没有人使用贝叶斯过滤器让论坛成员对帖子进行分类,所以随着时间的推移,论坛只显示有趣的帖子?贝叶斯过滤器似乎可以很好地检测垃圾邮件。贝叶斯过滤器的实现是为用户过滤论坛帖子的可行方法吗?

0 投票
3 回答
7779 浏览

bayesian - Loopy 信念传播代码示例

有人知道贝叶斯网络(循环)信念的和积算法的工作代码示例吗?我已经在地球上搜寻了几天,但运气不佳。我对它是哪种语言无动于衷。

我在该主题上找到的所有文档都充满了晦涩难懂且模棱两可的数学语言。这似乎不是一个困难的算法,但我不能确定,因为一些棘手的部分被掩盖了太多。

或者,使用实数(而不是变量名)的示例也可能会起到作用。

0 投票
1 回答
1018 浏览

classification - 在贝叶斯分类器中检测未知类

如果你有一个为一组类训练的贝叶斯分类器,如何检测输出是否足够重要以选择一个类?这对于检测无法分配给类的样本很有用。我已经尝试测试类概率是否高于所有类概率的均值+2*stddev,但我认为它不会是稳健的。

0 投票
2 回答
1230 浏览

hadoop - Hadoop:在 Apache Mahout 中实现贝叶斯算法时出错

我在 Mahout 中执行贝叶斯算法时遇到问题。我用 Maven 构建了它,作业文件在目标目录中。当使用 Hadoop 从终端运行时,我收到 ClassNotFoundException 错误。应该做什么?

线程“主”java.lang.ClassNotFoundException 中的异常:java.net.URLClassLoader$1.run(URLClassLoader.java:200) 处 java.security.AccessController 处的 org.apache.mahout.classifier.bayes.mapreduce.bayes.bayesdriver。 doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:252)在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:247) 在 org.apache.hadoop.util .RunJar.main(RunJar.java:149)