标签: bayesian

推文价值预测:什么样的分析(贝叶斯?)可以预测Twitter用户对推文的重视程度?

我正在考虑向TalkingPuffin Twitter客户端添加一项功能,在与用户进行一些培训后,它可以根据预测值对传入的推文进行排名.Java虚拟机(Scala或Java首选)有哪些解决方案来执行此类操作?

java twitter scala bayesian

3
推荐指数
1
解决办法
470
查看次数

文档分析和标记

假设我有一堆文章(成千上万)我想要标记,分类等.理想情况下,我想通过手动分类/标记几百个来训练某些东西,然后让它松散.

你会推荐哪些资源(书籍,博客,语言)来完成这样的任务?我的一部分认为这适合贝叶斯分类器甚至潜在语义分析,但除了我从一些红宝石 宝石中发现的东西之外,我并不熟悉.

可以通过贝叶斯分类器解决这样的问题吗?我应该更多地关注语义分析/自然语言处理吗?或者,我应该只是从那里寻找关键字密度和映射?

任何建议都表示赞赏(我不介意拿几本书,如果这是需要的话)!

tagging nlp classification bayesian

3
推荐指数
1
解决办法
1399
查看次数

用Java编写的开源NaïveBayes分类器

我正在寻找一个用Java编写的开源NaïveBayes分类器库.非常感谢找到一个帮助.

NaïveBayes分类器与贝叶斯网络相同吗?

java open-source classification bayesian bayesian-networks

3
推荐指数
1
解决办法
8498
查看次数

weka AdaBoost不会改善结果

在我的学士论文中,我应该在文本分类问题上使用带有MultinomialNaiveBayes分类器的AdaBoostM1.问题在于,在大多数情况下,M1没有增强的情况下更糟或等于MultinomialNaiveBayes.

我使用以下代码:

AdaBoostM1 m1 = new AdaBoostM1();
m1.setClassifier(new NaiveBayesMultinomial());
m1.buildClassifier(training);
Run Code Online (Sandbox Code Playgroud)

所以我不明白AdaBoost怎么会无法改善结果呢?不幸的是,我在网上找不到任何其他相关内容,因为大多数人似乎对AdaBoost非常满意.

machine-learning data-mining bayesian weka adaboost

3
推荐指数
1
解决办法
5774
查看次数

错误消息JAGS子集超出范围

我试图在R中调用以下jags模型:

model{
  # Main model level 1
  for (i in 1:N){
    ficon[i] ~ dnorm(mu[i], tau)
    mu[i] <- alpha[country[i]]
  }

  # Priors level 1 
  tau ~ dgamma(.1,.1)

  # Main model level 2
  for (j in 1:J){
    alpha[j] ~ dnorm(mu.alpha, tau.alpha)
  }

  # Priors level 2
  mu.alpha ~ dnorm(0,.01)
  tau.alpha ~ dgamma(.1,.1)

  sigma.1 <- 1/(tau)
  sigma.2 <- 1/(tau.alpha)

  ICC <- sigma.2 / (sigma.1+sigma.2)  
}
Run Code Online (Sandbox Code Playgroud)

这是一个分层模型,其中ficon是连续变量0-60,可能具有不同的平均值或按国家/地区分布.N =总观测数(2244)和J =国家数(34).当我运行此模型时,我不断收到以下错误消息:

Compilation error on line 5.
Subset out of range: alpha[35]
Run Code Online (Sandbox Code Playgroud)

这段代码工作得比较早,但现在还没有用.我认为问题是只有34个国家,这就是为什么它会被困在i = 35,但我不知道如何解决这个问题.欢迎任何建议!

我用来调用模型的R代码:

### …
Run Code Online (Sandbox Code Playgroud)

r bayesian jags

3
推荐指数
1
解决办法
4542
查看次数

是否可以在多个核心(细分链)上使用JAGS运行多个链

我想知道是否可以在5或6个核心的JAGS中细分3个链.这是我的代码:

  library(parallel)
  # There is no progression bar using parallel
           jags.parallel(data = d$data,
                         inits = d$inits,
                         parameters.to.save = d$params,
                         model.file = model.jags,
                         n.chains = 3,
                         n.thin = 10,
                         n.iter = 9000,
                         n.burnin = 3000,
                         working.directory = NULL,
                         n.cluster = 3) ## the number of cluster it’s taking
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这是默认值,链的数量(nc在我的情况下为3)等于使用的核心数.

  1. 这对MCMC的采样方式有何影响?
  2. 在并行运行MCMC链时,是否有与R一起使用的最佳核心数?
  3. 我看到如果我有3个链条,我就不能进入3核心.它给了我这个错误: Error in res[[ch]] : subscript out of bounds.为什么?
  4. 如果我增加内核数量,则需要更长的时间(作为比较,12个内核需要比3个内核多7.2个时间)!不应该是相反的吗?
  5. 如何在不删除迭代,老化或添加细化(更多核心?,更改RAM?)的情况下更快地创建脚本?

我的计算机有16个内核,所以我在内核数量上有灵活性(还有64 GB的RAM和3 GHz的Intel Xeon E5处理器).

parallel-processing r bayesian mcmc jags

3
推荐指数
1
解决办法
1304
查看次数

bsts软件包的预测置信区间比预测中的auto.arima宽得多

我最近阅读了Google的史蒂文·斯科特(Steven Scott)的贝叶斯结构时间序列模型的bsts软件包,并希望将其与我用于各种预测任务的预测软件包中的auto.arima函数相对应。

我在几个示例上进行了尝试,并对该程序包的效率和预测点印象深刻。但是,当我查看预测方差时,我几乎总是发现bsts最终给出了比auto.arima更大的置信度范围。这是有关白噪声数据的示例代码

library("forecast")
library("data.table")
library("bsts")
truthData = data.table(target = rnorm(250))
freq = 52
ss = AddGeneralizedLocalLinearTrend(list(), truthData$target)
ss = AddSeasonal(ss, truthData$target, nseasons = freq)
tStart = proc.time()[3]
model = bsts(truthData$target, state.specification = ss, niter = 500)
print(paste("time taken: ", proc.time()[3] - tStart))
burn = SuggestBurn(0.1, model)
pred = predict(model, horizon = 2 * freq, burn = burn, quantiles = c(0.10, 0.90))

## auto arima fit
max.d = 1; max.D = 1; max.p = 3; max.q = 3; max.P = …
Run Code Online (Sandbox Code Playgroud)

r time-series bayesian forecasting

3
推荐指数
1
解决办法
1100
查看次数

sklearn:Naive Bayes分类器精度低

我有一个包含200000个标记的训练样例的数据集.对于每个训练示例,我有10个功能,包括连续和离散.我正在尝试使用sklearnpython包来训练模型并进行预测,但我遇到了一些麻烦(还有一些问题).

首先让我编写我到目前为止编写的代码:

from sklearn.naive_bayes import GaussianNB
# data contains the 200 000 examples
# targets contain the corresponding labels for each training example
gnb = GaussianNB()
gnb.fit(data, targets)
predicted = gnb.predict(data)
Run Code Online (Sandbox Code Playgroud)

问题是我的准确度非常低(错误分类标签太多) - 大约20%.但是我不太确定数据是否存在问题(例如需要更多数据或其他内容)或代码.

在给定具有离散和连续特征的数据集的情况下,这是实现朴素贝叶斯分类器的正确方法吗?

此外,在机器学习中,我们知道数据集应该分为训练和验证/测试集.这是由模型使用训练数据集自动执行sklearn还是我应该使用验证集fit调用predict

任何想法或建议将不胜感激.

python machine-learning bayesian scikit-learn naivebayes

3
推荐指数
1
解决办法
1162
查看次数

什么是pm.Normal.dist.logp?

我正在阅读黑客的概率编程和贝叶斯方法.在Ch5中,写的是logp = pm.Normal.dist(mu=price_estimate, sd=(3e3)).logp(true_price).

这是什么?我知道,pm.Normal()但不知道.dist().logp().

python statistics bayesian pymc3

3
推荐指数
1
解决办法
367
查看次数

如何使用rstanarm以APA风格报告贝叶斯线性(混合)模型?

我目前正在努力解决如何按照APA-6建议报告的结果rstanarm::stan_lmer().

首先,我将在频率论方法中使用混合模型,然后尝试使用贝叶斯框架进行相同的操作.

以下是获取数据的可重现代码:

library(tidyverse)
library(neuropsychology)
library(rstanarm)
library(lmerTest)

df <- neuropsychology::personality %>% 
  select(Study_Level, Sex, Negative_Affect) %>% 
  mutate(Study_Level=as.factor(Study_Level),
         Negative_Affect=scale(Negative_Affect)) # I understood that scaling variables is important
Run Code Online (Sandbox Code Playgroud)

现在,让我们以"传统"的方式拟合线性混合模型来测试性别(男/女)对负面情绪(负面情绪)的影响,以及研究水平(教育年限)作为随机因素.

fit <- lmer(Negative_Affect ~ Sex + (1|Study_Level), df)
summary(fit)
Run Code Online (Sandbox Code Playgroud)

输出如下:

Linear mixed model fit by REML t-tests use Satterthwaite approximations to degrees of
  freedom [lmerMod]
Formula: Negative_Affect ~ Sex + (1 | Study_Level)
   Data: df

REML criterion at convergence: 3709

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.58199 -0.72973  0.02254  0.68668  2.92841 …
Run Code Online (Sandbox Code Playgroud)

r bayesian mixed-models stan rstan

3
推荐指数
1
解决办法
735
查看次数