标签: bayesian

计算在贝叶斯垃圾邮件过滤器中令牌成为垃圾邮件的概率

我最近编写了一个贝叶斯垃圾邮件过滤器,我使用了Paul Graham的文章Plan for Spam,在C#中实现了它,我在codeproject上找到了创建自己的过滤器的参考.

我刚刚注意到CodeProject上的实现使用了唯一令牌的总数来计算令牌成为垃圾邮件的概率(例如,如果火腿语料库总共包含10000个令牌但是1500个unqiue令牌,则1500用于计算概率为ngood ),但在我的实现中,我使用了Paul Graham的文章中提到的帖子数量,这让我想知道哪一个在计算概率方面应该更好:

  1. 帖子数(如Paul Graham的文章中所述)
  2. 总唯一令牌数(在codeproject上的实现中使用)
  3. 总令牌数
  4. 包含令牌总数的总数(即那些b + g> = 5的令牌)
  5. 总计唯一包括令牌数

c# algorithm spam-prevention bayesian

8
推荐指数
1
解决办法
1929
查看次数

基于其他用户喜欢的用于查找用户想要的内容的算法

我正在考虑编写一个应用程序,根据家庭成员的喜好对HTPC中的电影进行分类.

我不知道统计数据或人工智能,但这里的东西看起来很多汁.我不知道从哪里开始做.

这就是我想要完成的事情:

  1. 从每个用户喜欢组合一组样本,分别对每个样本属性进行评级.例如,也许用户喜欢西方电影很多,所以西方流派会为该用户带来更多的权重(等等其他属性,如演员,导演等).

  2. 用户可以基于其他用户的喜欢获得建议.例如,如果用户A和B都喜欢Spielberg(用户之间的连接),而用户B喜欢Batman Begins,但是用户A厌恶Katie Holmes,则相应地为用户A权衡电影(再次,每个属性分开,例如,也许用户A不喜欢动作电影,所以将评级降低一点,因为凯蒂霍姆斯不是主要的明星,所以不要像其他属性那样考虑到这一点.

基本上,比较来自用户A的集合,类似于来自用户B的集合,并为用户A提供评级.

我对如何实现这一点有一个粗略的想法,但我确信一些聪明的头脑已经考虑过一个更好的解决方案,所以...任何建议?

实际上,经过快速研究,似乎贝叶斯过滤器可行.如果是这样,这会是更好的方法吗?是否只是简单地"标准化"电影数据,为每个用户训练分类器,然后只对每部电影进行分类?

如果你的建议包括一些大脑融化概念(我在这些科目中没有经验,特别是在人工智能方面),如果你在深入研究多肉之前还列出了一些基础知识供我研究,我会很感激.

谢谢!

algorithm statistics machine-learning bayesian neural-network

8
推荐指数
1
解决办法
660
查看次数

Loopy Belief传播代码示例

有没有人知道贝叶斯网络(loopy)信念的和积算法的工作代码示例?我已经在地球上冲了几天但运气不好.我对它的语言无动于衷.

我在这个主题上发现的所有文件都充满了神秘而荒谬的数学说法.它似乎不是一个困难的算法,但我不能确定,因为一些棘手的位被掩盖了这么多.

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

bayesian

8
推荐指数
1
解决办法
7260
查看次数

8
推荐指数
2
解决办法
1万
查看次数

WinBUGS Weibull网络元分析

我目前正在对几项临床试验中的生存数据进行荟萃分析.

为此,我使用相同的方法从已发布的分析中获取代码.但是,使用已发布分析中的数据运行此代码时,我无法复制其结果.事实上,结果未能收敛到任何合理的估计.

代码本身(不包括数据)应该是正确的,因为它直接来自作者.我假设问题必须是w /初始值或如何运行采样的参数,但是在玩了很多初始值之后,燃烧,稀释等的长度......我没有得到有意义的结果.

我将不胜感激任何关于如何运行它(初始值等等)的建议,以使其正常运行.或者,如果代码中存在问题或者数据的设置方式与代码不匹配,那么知道这将是有用的.

作为旁注,我正在使用R2WinBUG进行分析,尽管我单独使用WinBUG遇到了同样的问题.

关于该方法的一些额外背景:

这种方法的工作方式是通过使用随机效应估计多个研究中处理之间重新参数化的Weibull分布的形状和尺度参数的差异.

威布尔分布被重新参数化,使得危险率的对数是a + b*log(t),其中a是比例参数,b是形状参数.由此,您可以计算一定间隔内给定数量的患者中给定数量的失败的似然函数.

不幸的是,这篇文章是公开的,但如果你可以访问这里是链接:http: //onlinelibrary.wiley.com/doi/10.1002/jrsm.25/abstract;jsessionid=2BA8F0D9BEF9A33F84975618D33F8DD9.f03t03?userIsAuthenticated=false&deniedAccessCustomisedMessage=

输入模型的变量的快速摘要:

NT:包括的单独治疗数量.

N:主数据集中的行数.NS:研究数量

s:研究数据线对应(编号为1:6)

r:该治疗/研究的间隔失败的患者数量

n:该治疗/研究的间隔开始时有风险的患者数

t:此数据对应的处理(编号1:3)

b:指示哪个治疗是与其他治疗比较的基线治疗(每条线设置为1).

bs:治疗是本研究的对照组

bt:治疗是本研究的研究部门

WinBUGS代码(包括数据):

#Winbugs code for random effects networks meta-analysis model
Model
{
  for (i in 1:N)
  { # N=number of data points in dataset
    #likelihood
    r[i]~ dbin(p[i],n[i])
    p[i]<-1-exp(-h[i]*dt[i]) # hazard h over interval [t,t+dt] # expressed as deaths per unit person-time (e.g. months)
    #random effects model
    log(h[i])<-nu[i]+log(time[i])*theta[i]
    nu[i]<-mu[s[i],1]+delta[s[i],1]*(1-equals(t[i],b[i]))
    theta[i]<-mu[s[i],2]+ delta[s[i],2]*(1-equals(t[i],b[i]))
  }
  for(k in 1 :NS)
  { …
Run Code Online (Sandbox Code Playgroud)

bayesian winbugs r2winbugs winbugs14 survival-analysis

8
推荐指数
1
解决办法
590
查看次数

简单的情感分析

看来,进行基本情感分析的最简单,最天真的方法是使用贝叶斯分类器(通过我在SO上找到的内容证实).有任何反驳或其他建议吗?

nlp bayesian

7
推荐指数
2
解决办法
3492
查看次数

人工智能,文本分类器

我是AI的新手.我正在通过机器学习来处理文本分类的应用程序.应用程序需要对HTML文档的不同部分进行分类.例如,大多数网页都有头部,菜单,侧边栏,页脚,主要内容等.我想使用文本分类器对HTML文档的这些部分进行分类,并在页面上标识不同类型的表单.

  1. 如果任何人都可以提供关于这个主题的详细指导,将会非常有帮助.
  2. 类似应用的例子也会非常有帮助.

我正在寻找有关代码和实现的更多技术建议.

我可以为html标签属性分配标签,例如class或id

<div class="menu-1">
<div id="entry">
<div id="content">
<div id="footer">
<div id="comment-12">
<div id="comment-title">
Run Code Online (Sandbox Code Playgroud)

喜欢第一项:

TrainClassifier(标签:"菜单",值:"menu-1",属性:"class",position-in-string:"21%",tag:"div");

输入:

  1. "menu-1"(属性值)
  2. 项目清单
  3. "class"(属性名称)
  4. "21"(字符串中的标记位置)
  5. "div"(标签名称)

产量

  1. "菜单"(分类为标签)

什么神经网络库,可以采取上述输入,并将它们分类到标签(即菜单).

所有用户都无法创建正则表达式或xpath,他们需要更简单的方法,因此重要的是,要使软件智能化,用户可以使用webbrowser控件突出显示他/她需要的部分html文档,并训练软件直到它可以独自工作.

但我不知道如何使用AI制作软件列车,

我正在寻找的AI,就像它应该能够接受各种输入,并在此基础上进行分类,正如我已经说过AI的新内容,对它不太了解.

如果我能回答我提出的问题,比如我应该使用哪个库,以及如何实现,建议使用Xpath或Regex或其他方法的答案,那么对我来说会有所帮助.建议,但你需要的.

c# artificial-intelligence bayesian winforms neural-network

7
推荐指数
1
解决办法
2171
查看次数

处理朴素贝叶斯分类器中的缺失属性

我正在写一个朴素贝叶斯分类器,用于从WiFi信号强度进行室内房间定位.到目前为止,它运行良好,但我有一些关于缺少功能的问题.这经常发生,因为我使用WiFi信号,并且WiFi接入点根本无处不在.

问题1:假设我有两个类,Apple和Banana,我想将测试实例T1分类如下.

在此输入图像描述

我完全理解Naive Bayes分类器的工作原理.以下是我在Wikipedia关于分类器的文章中使用的公式.我使用统一的先验概率P(C = c),所以我在实现中省略了它.

在此输入图像描述

现在,当我计算方程的右边并循环所有类条件特征概率时,我使用哪一组特征?测试实例T1使用功能1,3和4,但这两个类没有所有这些功能.因此,当我执行循环计算概率乘积时,我看到了几个关于我循环的选择:

  1. 循环遍历训练中所有特征的并集,即特征1,2,3,4.由于测试实例T1没有特征2,因此使用人为的微小概率.
  2. 仅循环测试实例的功能,即1,3和4.
  3. 循环遍历每个类的可用功能.要计算'Apple'的类条件概率,我会使用功能1,2和3,而对于'Banana',我会使用2,3和4.

我应该使用以上哪个?

问题2:假设我想对测试实例T2进行分类,其中T2具有在任一类中都找不到的功能.我正在使用日志概率来帮助消除下溢,但我不确定循环的细节.我正在做这样的事情(在类似Java的伪代码中):

Double bestLogProbability = -100000;
ClassLabel bestClassLabel = null;

for (ClassLabel classLabel : allClassLabels)
{
    Double logProbabilitySum = 0.0;

    for (Feature feature : allFeatures)
    {
        Double logProbability = getLogProbability(classLabel, feature);

        if (logProbability != null)
        {
            logProbabilitySum += logProbability;
        }
    }

    if (bestLogProbability < logProbability)
    {
        bestLogProbability = logProbabilitySum;
        bestClassLabel = classLabel;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果没有类具有测试实例的功能(示例中的功能5),则logProbabilitySum将保持为0.0,导致bestLogProbability为0.0,或线性概率为1.0,这显然是错误的.有什么更好的方法来处理这个问题?

java classification machine-learning data-mining bayesian

7
推荐指数
1
解决办法
4805
查看次数

张量流中'tf.contrib.rnn.DropoutWrapper'到底是做什么的?(三个政治问题)

据我所知,DropoutWrapper使用如下

__init__(
cell,
input_keep_prob=1.0,
output_keep_prob=1.0,
state_keep_prob=1.0,
variational_recurrent=False,
input_size=None,
dtype=None,
seed=None
)
Run Code Online (Sandbox Code Playgroud)

.

cell = tf.nn.rnn_cell.LSTMCell(state_size, state_is_tuple=True)
cell = tf.nn.rnn_cell.DropoutWrapper(cell, output_keep_prob=0.5)
cell = tf.nn.rnn_cell.MultiRNNCell([cell] * num_layers, state_is_tuple=True)
Run Code Online (Sandbox Code Playgroud)

我唯一知道的是它在训练时用于辍学.这是我的三个问题

  1. 什么是input_keep_prob,output_keep_prob和state_keep_prob?(我猜他们定义了RNN每个部分的丢失概率,但究竟在哪里?)

  2. 在这种背景下,辍学不仅适用于RNN,还适用于培训,还适用于预测过程?如果这是真的,有没有办法决定我是否在预测过程中使用辍学?

  3. 作为tensorflow网页API文档,如果variational_recurrent =真辍学工作根据在纸上"Y加尔,Z Ghahramani.'辍学的复发性神经网络的理论基础的应用程序’的方法.https://arxiv.org/ abs/1512.05287 "我大致理解了这篇论文.当我训练RNN时,我使用'批量'而非单个时间序列.在这种情况下,tensorflow会自动将不同的丢失掩码分配给批处理中的不同时间序列?

bayesian neural-network python-3.x tensorflow rnn

7
推荐指数
1
解决办法
2849
查看次数

贝叶斯网络中的变量必须是布尔值吗?

我不敢相信我找不到任何相关信息,但是贝叶斯网络中的变量必须是布尔值吗?我在教科书或网上找到的每个示例都使用 T/F 变量,但是如何表示在贝叶斯网络中具有两个以上可能值的变量?

例如,我遇到了以下问题:

我们有一袋三个有偏差的硬币 a、b 和 c,正面朝上的概率分别为 20%、60% 和 80%。从袋子中随机抽取一枚硬币(抽取三枚硬币的可能性相同),然后将硬币翻转三次以生成结果 X1、X2 和 X3。

绘制与此设置相对应的贝叶斯网络并定义必要的 CPT(条件概率表)。

谁能帮我指出开始这个方向的方向?

artificial-intelligence bayesian

7
推荐指数
1
解决办法
1779
查看次数