标签: bayesian

如何将矩阵数据输入到brms公式中?

我正在尝试将矩阵数据输入到brm()函数中以运行信号回归。brm来自 brms 包,它提供了一个使用 Stan 拟合贝叶斯模型的接口。信号回归是指在更大的模型中使用另一个协变量对一个协变量进行建模,并使用by如下参数:model <- brm(response ~ s(matrix1, by = matrix2) + ..., data = Data)。问题是,我无法使用“data”参数输入矩阵,因为它只允许data.frame输入一个对象。

这是我的代码以及我试图绕过该约束而获得的错误......

首先,我的可重现代码导致模型构建:

library(brms)
#100 rows, 4 columns. Each cell contains a number between 1 and 10
Data <- data.frame(runif(100,1,10),runif(100,1,10),runif(100,1,10),runif(100,1,10))
#Assign names to the columns
names(Data) <- c("d0_10","d0_100","d0_1000","d0_10000")
Data$Density <- as.matrix(Data)%*%c(-1,10,5,1)
#the coefficients we are modelling
d <- c(-1,10,5,1) 
#Made a matrix with 4 columns with values 10, 100, 1000, 10000 which are evaluation …
Run Code Online (Sandbox Code Playgroud)

r matrix bayesian stan brms

5
推荐指数
1
解决办法
557
查看次数

加权平均和评级

数学不是我的强项,我在这里不知所措。

基本上,我所需要的只是一个简单的公式,它可以给出 1 到 5 的加权评级。如果票数很少,它们的影响力较小,并且评级更趋向于平均值(在这种情况下,我希望它是为 3,而不是所有其他评分的平均值)。

我尝试了一些不同的贝叶斯实现,但这些都没有解决。我相信我正在寻找的图形表示可以显示为:

     ___
    /
___/
Run Code Online (Sandbox Code Playgroud)

干杯

algorithm statistics bayesian weighted-average

4
推荐指数
1
解决办法
4243
查看次数

使用PYMC3回归

我在这里发布了一个IPython笔记本http://nbviewer.ipython.org/gist/dartdog/9008026

我通过标准Statsmodels OLS和PYMC3与Pandas提供的数据一起工作,顺便说一下,这部分工作得很好.

我看不出如何从PYMC3中获得更多标准参数?这些示例似乎只是使用OLS来绘制基本回归线.看来PYMC3模型数据应该能够给出回归线的参数吗?除了可能的痕迹,即什么是最高概率线?

对Alpha,beta和sigma的解释的任何进一步解释都欢迎!

另外,如何使用PYMC3模型来估计给定新x即具有某种概率的预测的y的未来值?

最后,PYMC3有一个新的GLM包装,我尝试了它似乎搞砸了?(虽然可能是我)

python bayesian pandas statsmodels pymc3

4
推荐指数
1
解决办法
1135
查看次数

Dirichlet-多项式WinBUGS代码

我正在尝试使用BUGS编写Dirichlet多项式模型。基本上我有18个地区,每个地区3个类别。例如,区域1:0.50属于低,0.30属于中,而0.20属于高。该列表当然以不同的比例进入第18区,我得到的唯一代码是

`model  {
 for (i in 1:N) {
 x[1:3] ~ dmulti(p[],n[i])
 p[1:3] ~ ddirch(alpha[])
 }
 for (k in 1:3) {
 alpha[k] <- 1
 }
 }
 DATA list(n=c(38483, 2259, 1900),x=c(29256.42719, 1857.431404, 1548.007808, 29256.42719, 1857.431404, 1548.007808, 29256.42719, 1857.431404, 1548.007808), N=3)`
Run Code Online (Sandbox Code Playgroud)

例如,我首先将其缩短为3个区域。单击“ gen inits”后,其显示“ Dirichlet36”。请帮我编码。

dirichlet bayesian winbugs multinomial

4
推荐指数
1
解决办法
3678
查看次数

与pymc3和信念的线性回归

我试图掌握Bayesain统计数据 pymc3

我运行此代码进行简单的线性回归

#Generating data y=a+bx
import pymc3
import numpy as np
N=1000
alpha,beta, sigma = 2.0, 0.5, 1.0
np.random.seed(47)
X = np.linspace(0, 1, N)
Y = alpha + beta*X + np.random.randn(N)*sigma

#Fitting
linear_model = pymc3.Model()
with linear_model:
    alpha = pymc3.Normal('alpha', mu=0, sd=10)
    beta = pymc3.Normal('beta', mu=0, sd=10)
    sigma = pymc3.HalfNormal('sigma', sd=1)
    mu = alpha + beta*X
    Y_obs = pymc3.Normal('Y_obs', mu=mu, sd=sigma, observed=Y)

    start = pymc3.find_MAP(fmin=optimize.fmin_powell)
    step = pymc3.NUTS(scaling=start)
    trace = pymc3.sample(500, step, start=start)
Run Code Online (Sandbox Code Playgroud)

我不明白跟踪代表什么

如果我理解的贝叶斯理论不够好,有应该是一个belief即得功能alpha, …

python bayesian pymc3

4
推荐指数
1
解决办法
502
查看次数

pymc3 中均匀分布的区间变换是什么?

我注意到在 pymc3 中使用均匀分布时,_interval除非指定了转换,否则采样器也会扫描参数,例如:

with fitModel6:

    normMu  = pm.Uniform('normMu',lower=0,upper=1000)
Run Code Online (Sandbox Code Playgroud)

不仅会导致对 normMu 进行采样,还会导致对 normMu_interval 进行采样:

区间轨迹图

参数轨迹图

通常,当我使用统一先验作为尺度参数(如归一化)时,我当然会在对数间隔内进行采样。pymc3 是否以某种方式为我处理这个问题?

干杯

bayesian pymc3

4
推荐指数
1
解决办法
1056
查看次数

Cauchy在JAGS之前

我正在使用rJAGS构建一个多级贝叶斯模型,我想为几个参数指定一个Cauchy先验.有没有办法在JAGS中执行此操作,还是需要切换到STAN?我的JAGS模型如下.我想dnorm用Cauchy 替换分布,但是JAGS找不到标准的RCauchy分布,例如dcauchy,pcauchy

model_string <- "model{
for (i in 1:n){
    y[i] ~ dbin(mu[i], 1) 
p.bound[i] <- max(0, min(1, mu[i])) #381 gelman
logit(mu[i]) <- a[dc[i]] + b1*x1[i] + b2*x2[i]
}

b1 ~ dnorm(0,.001) 
b2 ~ dnorm(0,.001) 

for (j in 1: n.dc ){
    a[j] ~ dnorm(g0, tau.a)  #not goj, g1j
}

g0 ~ dnorm(0,.001) 
tau.a <- pow(sigma.a , -2)
sigma.a ~ dnorm(0,.001) 
}"
Run Code Online (Sandbox Code Playgroud)

r bayesian jags

4
推荐指数
1
解决办法
3903
查看次数

使用 RandomizedSearchCV 对 XGBClassifier 进行 Python 超参数优化

我正在尝试为 XGBClassifier 获得最佳超参数,这将导致获得最多的预测属性。我正在尝试使用 RandomizedSearchCV 通过 KFold 进行迭代和验证。

当我总共运行这个过程 5 次 (numFolds=5) 时,我希望将最好的结果保存在一个名为收集器的数据框中(如下所述)。所以每次迭代,我都希望最好的结果和分数附加到收集器数据帧。

 from scipy import stats
 from scipy.stats import randint
 from sklearn.model_selection import RandomizedSearchCV
 from sklearn.metrics import 
 precision_score,recall_score,accuracy_score,f1_score,roc_auc_score

clf_xgb = xgb.XGBClassifier(objective = 'binary:logistic')
param_dist = {'n_estimators': stats.randint(150, 1000),
              'learning_rate': stats.uniform(0.01, 0.6),
              'subsample': stats.uniform(0.3, 0.9),
              'max_depth': [3, 4, 5, 6, 7, 8, 9],
              'colsample_bytree': stats.uniform(0.5, 0.9),
              'min_child_weight': [1, 2, 3, 4]
             }
clf = RandomizedSearchCV(clf_xgb, param_distributions = param_dist, n_iter = 25, scoring = 'roc_auc', error_score = 0, verbose = 3, n_jobs …
Run Code Online (Sandbox Code Playgroud)

python classification bayesian xgboost

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

R bnlearn eval 内部函数

我正在使用 R 中的 bnlearn 包来训练贝叶斯网络。我在使用以下代码时遇到了麻烦(稍微修改了 bnlearn 示例代码):

library(bnlearn)
data(learning.test)
fitted = bn.fit(hc(learning.test), learning.test)

myfuncBN=function(){

  var = names(learning.test)
  obs = 2
  str = paste("(", names(learning.test)[-3], "=='",
          sapply(learning.test[obs,-3], as.character), "')",
          sep = "", collapse = " & ")
  str2 = paste("(", names(learning.test)[3], "=='",
           as.character(learning.test[obs, 3]), "')", sep = "")
  cpquery(fitted, eval(parse(text = str2)), eval(parse(text = str)))
}

myfuncBN()
Run Code Online (Sandbox Code Playgroud)

此代码引发错误:

结束时出错:无法将类型“闭包”强制转换为“字符”类型的向量

但是,如果 str 和 str2 是在函数 myfuncBN() 之外定义的,则它有效。有谁知道这是什么原因?

r bayesian bnlearn

4
推荐指数
1
解决办法
228
查看次数

并非所有点都在 Scikit-Optimize 中的空间误差范围内

我正在尝试使用scikit 优化包在 LSTM 模型(纯 Tensorflow)上执行超参数优化任务。为此,我正在使用使用高斯过程(gp_minimize)的贝叶斯优化方法。可以通过此链接找到为该函数提供的演示代码。当我尝试运行我的代码时,我不断收到以下错误:

ValueError:并非所有点都在空间范围内。

我的完整代码如下所示:

import skopt
from skopt import gp_minimize, forest_minimize
from skopt.space import Real, Categorical, Integer
from skopt.plots import plot_convergence
from skopt.plots import plot_objective, plot_evaluations
from skopt.utils import use_named_args

import csv
import tensorflow as tf
import numpy as np
import  pandas as pd
from sklearn.metrics import mean_squared_error
from math import sqrt
import atexit
from time import time, strftime, localtime
from datetime import timedelta


input_size = 1
num_layers = …
Run Code Online (Sandbox Code Playgroud)

optimization bayesian python-3.x deep-learning hyperparameters

4
推荐指数
1
解决办法
1790
查看次数