我正在寻找一个进行贝叶斯垃圾邮件过滤的Python库.我查看了SpamBayes和OpenBayes,但两者似乎都没有维护(我可能错了).
任何人都可以建议一个很好的Python(或Clojure,Common Lisp,甚至Ruby)库实现贝叶斯垃圾邮件过滤?
提前致谢.
澄清:我实际上在寻找贝叶斯垃圾邮件分类器,而不一定是垃圾邮件过滤器.我只想用一些数据训练它,然后告诉我一些给定的数据是否是垃圾邮件.对不起任何困惑.
我一直在试图实现贝叶斯线性回归使用模型PyMC3与真实数据(即不是从线性函数+高斯噪声)从数据集sklearn.datasets.我选择了具有最小数量的属性(即load_diabetes())形状为的回归数据集(442, 10); 就是,442 samples和10 attributes.
我相信我的模型正在运行,后面看起来还不错,可以预测并弄清楚这些东西是如何起作用的......但我意识到我不知道如何使用这些贝叶斯模型进行预测!我试图避免使用glm和patsy符号,因为我很难理解使用它时实际发生了什么.
我尝试了以下内容: 从pymc3 和http://pymc-devs.github.io/pymc3/posterior_predictive/中的推断参数生成预测,但我的模型在预测时非常糟糕,或者我做错了.
如果我实际上正在做正确的预测(我可能不是),那么任何人都可以帮助我优化我的模型.我不知道是否最少mean squared error,absolute error或类似的东西在贝叶斯框架中有效.理想情况下,我想得到一个number_of_rows数组=我的X_te属性/数据测试集中的行数,以及来自后验分布的样本列数.
import pymc3 as pm
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
from scipy import stats, optimize
from sklearn.datasets import load_diabetes
from sklearn.cross_validation import train_test_split
from theano …Run Code Online (Sandbox Code Playgroud) 在Stackoverflow的其他答案中,有人建议Weka很好,但还有其他人(Classifier4j,jBNC,Naiban).
有没有人有这些实际经验?
java classification machine-learning spam-prevention bayesian
我想实现一个简单的贝叶斯分类系统来对短消息进行基本的情感分析.在Ruby中实现的实用建议将受到欢迎.除了贝叶斯之外的其他方法的建议也将受到欢迎.
当用户访问我的Python Web服务时,我正在收集许多非常有趣的数据点.例如,我有他们当前的城市,州,国家,用户代理等.我希望能够做的是通过某种类型的机器学习系统/算法(可能是贝叶斯分类器?)来运行它们,最终目标是在出现异常情况时(异常检测)获取电子邮件通知.例如,Jane Doe只在Chrome上从美国登录.因此,如果她突然在Firefox上从乌克兰登录我的网络服务,我希望看到这是一个非常"不寻常"的事件并触发通知.
我已经在使用CouchDB(特别是Cloudant),我看到人们经常在网上说,Cloudant/CouchDB非常适合这种事情(大数据分析).但是我完全不知道从哪里开始.我没有找到关于相对简单地跟踪Web服务的外围事件的文档,更不用说使用CouchDB存储以前"学习"的数据了.我看到了几种用于进行此类数据处理的专用系统(需要想到的是PredictionIO),但考虑到CouchDB的本质,我不禁觉得它们有点过分.
任何见解都会非常感激.谢谢!
我开始学习斯坦.
任何人都可以解释何时以及如何使用...等语法?
target +=
Run Code Online (Sandbox Code Playgroud)
而不只是:
y ~ normal(mu, sigma)
Run Code Online (Sandbox Code Playgroud)
例如,在Stan手册中,您可以找到以下示例.
model {
real ps[K]; // temp for log component densities
sigma ~ cauchy(0, 2.5);
mu ~ normal(0, 10);
for (n in 1:N) {
for (k in 1:K) {
ps[k] = log(theta[k])
+ normal_lpdf(y[n] | mu[k], sigma[k]);
}
target += log_sum_exp(ps);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为目标线增加了目标值,我认为这是后验密度的对数.
但是后验密度是什么参数?
什么时候更新并初始化?
在Stan完成(并收敛)之后,您如何获取其价值以及我如何使用它?
其他例子:
data {
int<lower=0> J; // number of schools
real y[J]; // estimated treatment effects
real<lower=0> sigma[J]; // s.e. of effect estimates
}
parameters …Run Code Online (Sandbox Code Playgroud) 我刚刚完成了Osvaldo Martin的Python书中的贝叶斯分析(理解贝叶斯概念和一些花哨的numpy索引的好书).
我真的想将我的理解扩展到贝叶斯混合模型,用于无监督的样本聚类.我所有的谷歌搜索都让我看到了Austin Rochford的教程,这本教程非常有用.我理解发生了什么,但我不清楚它如何适应群集(特别是使用群集分配的多个属性,但这是一个不同的主题).
我知道如何分配先验,Dirichlet distribution但我无法弄清楚如何获得集群PyMC3.看起来大多数mus会聚到质心(即我从中采样的分布方式),但它们仍然是分开的components.我考虑过weights(w在模型中)截止,但这似乎不像我想象的那样工作,因为多个components具有稍微不同的平均参数mus正在收敛.
如何从此PyMC3模型中提取聚类(质心)?我给了它最多的15组件,我想收敛3.在mus似乎是在正确的位置,但权重搞砸b他们被其他集群之间分配/ C,所以我不能用一个权重阈值(除非我把它们合并,但我不认为这是事情是这样的通常做完).
import pymc3 as pm
import numpy as np
import matplotlib.pyplot as plt
import multiprocessing
import seaborn as sns
import pandas as pd
import theano.tensor as tt
%matplotlib inline
# Clip at 15 components
K = 15 …Run Code Online (Sandbox Code Playgroud) python machine-learning bayesian unsupervised-learning pymc3
快速谷歌搜索显示,有很多贝叶斯分类器被实现为Python模块.如果我想要包装,类似于dbacl的高级功能,哪些模块适合我?
训练
% dbacl -l one sample1.txt
% dbacl -l two sample2.txt
Run Code Online (Sandbox Code Playgroud)
分类
% dbacl -c one -c two sample3.txt -v
one
Run Code Online (Sandbox Code Playgroud) 我正在研究A Naive Bayes分类器的实现.编程集体智慧通过将贝叶斯定理描述为:
Pr(A | B) = Pr(B | A) x Pr(A)/Pr(B)
Run Code Online (Sandbox Code Playgroud)
以及与文档分类相关的特定示例:
Pr(Category | Document) = Pr(Document | Category) x Pr(Category) / Pr(Document)
Run Code Online (Sandbox Code Playgroud)
我希望有人可以向我解释这里使用的符号,Pr(A | B)和Pr(A)是什么意思?它看起来像某种功能,但管道是什么意思,等等?(我有点迷路)
提前致谢.
scheme/racket或clojure贝叶斯分类库的任何指针?我需要一个玩具/学习项目,我将要做的.
bayesian ×10
python ×5
pymc3 ×2
statistics ×2
clojure ×1
cloudant ×1
couchdb ×1
java ×1
naivebayes ×1
probability ×1
racket ×1
ruby ×1
scheme ×1
stan ×1
text ×1